我的意思是,我想制作一个根据用户输入打印星星的程序 我做到了:
for i in range(num):
print((i*-1)*' ' + (i+1)*'*')
for o in range(num-1):
print((num-o-1)*'*')
除了这个:
*
* *
*
我明白了:
*
**
*
如何实现空格?提前谢谢!
答案 0 :(得分:2)
如果将字符串乘以负数,则只需获取空字符串。而且你的公式开头不正确。您需要在前面填充足够的空间以使其对齐(在等宽的终端中)。
这是正确执行此操作的一种方法
>>> def diamond(n):
... print(' '*n + '*')
... for i in list(range(1,n)) + list(range(n,0,-1)):
... print('{}*{}*'.format(' '*(n-i), ' '*(2*i-1)))
... print(' '*n + '*')
将范围转换为列表对于大n来说效率不高,但它不是瓶颈,终端实际上只支持最多80个字符的宽度。