在Python中使用星号绘制钻石结构
我需要用星号在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))