如何在Python代码中使用字符和嵌套while循环绘制一个倒三角形?

2024-05-13 20:07:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经画了一个右边向上的直角三角形,看起来像这样:

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

带代码:

row = 1
while row <= size:
    col = 1
    while col <= row:
        print chr, 
        col = col + 1

    print '' 

    row = row + 1
print ''

但我需要画一个三角形,看起来像这样:

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

我也不知道该怎么做。我知道它需要至少2个嵌套循环,利用打印空间和字符。要求仅在使用循环时使用。

如果有人能告诉我如何为我写这篇文章,我将不胜感激。


Tags: 代码利用size空间col字符row嵌套循环
3条回答

使用str.join

def solve(width):
    for i in xrange(width, 0, -1):
        print ' '.join([' ']*(width-i) + ['*']*i)
...         
>>> solve(5)
* * * * *
  * * * *
    * * *
      * *
        *
>>> solve(7)
* * * * * * *
  * * * * * *
    * * * * *
      * * * *
        * * *
          * *
            *

使用最短时间

num = int(raw_input('Enter number :'))
for a in reversed(range(num+1)):
    print ' '*(num-a)+'*'*(a)

Enter number :7
*******
 ******
  *****
   ****
    ***
     **
      *

编辑使旋转三角形,也提出了一个更好的方法

chr = "*"
size = 5
row = 1
while row <= size:
    col = size - row + 1
    while col <= size:
        print ' ', 
        col = col + 1
    col = 0
    while col <= size-row:
        print chr, 
        col = col + 1
    row = row + 1
    print ''
print ''

相关问题 更多 >