打印空格和星号图案的代码有什么问题

  • 本文关键字:代码 问题 空格 打印 python
  • 更新时间 :
  • 英文 :


我想打印以下图案

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

我的代码:

for row in range(1,6):
print(' ' * (5-row) + row * '*')

上面的代码给了我预期的输出,但没有在每个*后添加空格

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

当我试图添加空格时,它打印为金字塔,这不是预期的输出有什么建议

print(' ' * (5-row) + row * '* ')  -> space added after `'*  '` 
* 
* * 
* * * 
* * * * 
* * * * *

您只需要增加填充的大小;尝试以下操作:

for row in range(1, 6):
print(' ' * (5 - row) * 2 + row * '* ')
#         *
#       * *
#     * * *
#   * * * *
# * * * * *

或者,您可以将f-string与join:一起使用

for i in range(1, 6):
print(f"{' '.join('*' * i):>9}")
#         *
#       * *
#     * * *
#   * * * *
# * * * * *

先为n-i打印空白,然后为i打印所需字符多次,其中i是从1n的单个数字。您可以在函数中实现代码,使其适用于n:的任何值

def printPattern(n=5):
for i in range(1, n + 1):
print('  ' * (n - i) + '* ' * i)

输出:对于n:的不同值

>>> printPattern(2)
* 
* *  
>>> printPattern() # default n is 5
* 
* * 
* * * 
* * * * 
* * * * * 
>>> printPattern(10)
* 
* * 
* * * 
* * * * 
* * * * * 
* * * * * * 
* * * * * * * 
* * * * * * * * 
* * * * * * * * * 
* * * * * * * * * * 

最新更新