在Python中使用星号绘制钻石结构

-2 投票
1 回答
1363 浏览
提问于 2025-04-19 06:39

我需要用星号在Python中打印一个基本的菱形结构。这个程序应该读取行数并输出结果。例如,如果行数是5,那么应该有3行正三角形和2行倒三角形,总共5行。此外,这段代码是针对Python 2.7的。

如果宽度是5,输出应该像这样:

  *
 * *
* * *
 * *
  *

这是我尝试的代码:

width=input("enter the number of rows")

for num in range(1, width-1 , 1):
    print(('*' * num).center(width))

for num in reversed(range(1, width-2, 1)):
    print(('*' * num).center(width))

1 个回答

1

我本来不打算写这个代码,但我喜欢这些东西。这个代码适用于偶数和奇数:

rows = input("enter the number of rows")

for num in range(1, rows // 2 + 1) + range((rows + 1) // 2, 0, -1):
    print(' '.join('*' * num).center(rows))

输出 rows = 5:

  *  
 * * 
* * *
 * * 
  *  

输出 rows = 6:

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

编辑

这个也不错:

for num in xrange(rows):
    print(' '.join('*' * min(num + 1, rows - num)).center(rows))

撰写回答