我是Python新手,请有人帮忙画一个如下所示的形状。该程序必须将星星的数量作为输入。
星星数量 = 7
* *
** **
*** ***
********
*** ***
** **
* *
我的代码:
count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, pattern_size):
pattern = list(" " * pattern_size)
pattern[:t] = "*" * t
pattern[-t:] = '*' * t
print(''.join(pattern))
star count : 9
* *
** **
*** ***
**** ****
**********
**********
**********
**********
**********
最佳答案
这是一个易于理解的示例,在您的方法中使用了两个 for 循环:一个只是另一个的逆
count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, int(pattern_size/2)):
pattern = list(" " * pattern_size)
pattern[:t] = "*" * t
pattern[-t:] = '*' * t
print(''.join(pattern))
for t in range(int(pattern_size/2), 0, -1):
pattern = list(" " * pattern_size)
pattern[:t] = "*" * t
pattern[-t:] = '*' * t
print(''.join(pattern))
更高级的方法是使用字符串方法.center()
,如下所示:
count = int(input('star count : '))
pattern_size = count + 1
for t in range(1, int(pattern_size/2)):
print((" " * (pattern_size-t*2)).center(pattern_size, '*'))
for t in range(int(pattern_size/2), 0, -1):
print((" " * (pattern_size - t * 2)).center(pattern_size, '*'))
关于python - 如何绘制如下所示的 'x' 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43405460/