如何将打印空心钻石的代码转换为实心钻石?

时间:2020-09-18 15:01:52

标签: python python-3.x

你好,我是python的新手,有一个我遇到的问题:

这是打印空心钻石的原始代码:

def print_diamond(height):
    """prints hollow diamond"""
    print("{:^{}}".format("*", height))
    for i in range(1, height // 2):
        print("{:^{}}".format("*" + " " * (2*i - 1) + "*", height))
    for i in range(height // 2, 0, -1):
        print("{:^{}}".format("*" + " " * (2*i - 1) + "*", height))
    
    print("{:^{}}".format("*", height))
    
#test code
print_diamond(5)

print_diamond(3)

print_diamond(7)

这将输出:

  *  
 * * 
*   *
 * * 
  *  
 * 
* *
 * 
   *   
  * *  
 *   * 
*     *
 *   * 
  * *  
   *   

您将如何转换此代码以打印实心菱形?

*
 *
***
 *
  *
 ***
*****
 ***
  *
   *
  ***
 *****
*******
 *****
  ***
   *

使用这些测试:

print_diamond(1)
print_diamond(2)
print_diamond(3)
print_diamond(4)

我尝试通过添加“ *”来更改格式,但这会将另一个“ *”推到一边。谢谢。

在空格“”中添加“ *”不能解决该问题,因为格式不能用于纯菱形测试代码。

它当前不应输出:

*
*
* 
***
* 
 * 
***
 * 

1 个答案:

答案 0 :(得分:0)

只需在以下几行中将" "替换为"*"

print("{:^{}}".format("*" + "*" * (2*i - 1) + "*", height))
相关问题