如何在python中反转星号三角形

问题描述 投票:2回答:4

目前,我有一个代码,输出这样的星号三角形:

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

这里是代码:

num = int(input("Enter the number of rows: "))
for i in range(1,num+1):
    for j in range(1,i+1):
        print("*",end=' ')
    print()

现在,如何使用/修改上面的相同代码,使三角形看起来像这样:

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

有什么建议吗?

python for-loop
4个回答
5
投票

使用字符串方法str.rjust

str.rjust

0
投票

这是可以通过以下两种方法之一执行的功能:

>>> num = int(input("Enter the number of rows: "))
>>> for i in range(1, num + 1):
...     print(" ".join("*" * i).rjust(num * 2))
Enter the number of rows: 5
         *
       * *
     * * *
   * * * *
 * * * * *

0
投票

如果您不被允许使用def tristar(n,rev=False): for i in range(1,n+1): if rev: s = ' ' * (n-i) + '*' * i print(s) else: s = '*' * i print(s)

rjust

或替代:

num = int(input("Enter the number of rows: "))
for i in range(1, num + 1):
    for j in range(num, 0, -1):
        if j <= i:
            print('*', end=' ')
        else:
            print(' ', end=' ')
    print()

-1
投票

以下代码将打印一个倒三角形:

num = int(input("Enter the number of rows: "))
for i in range(num, 0, -1):
    for j in range(1, num + 1):
        if i > j:
            print(' ', end=' ')
        else:
            print('*', end=' ')
    print()

输出:

for i in range(1,6):
    print("{:>5s}".format("*"*i))
© www.soinside.com 2019 - 2024. All rights reserved.