如何在Python中反转一个星号三角形

3

目前,我有一段代码可以输出如下的星号三角形:

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

这是相关的代码:

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()

现在,我该如何使用/修改上述代码使三角形看起来像这样:
        *
      * *
    * * *
  * * * *
* * * * * 

有什么建议吗?

这段代码没有生成这里的三角形。我冒昧修正了它。 - rafaelc
你说得对。让我快速修复一下。我只是在玩它。 - LotusAlice
@RafaelC 谢谢,那是我犯的一个非常粗心的错误。对此感到抱歉。 - LotusAlice
6个回答

6
使用字符串方法 str.rjust
>>> num = int(input("Enter the number of rows: "))
>>> for i in range(1, num + 1):
...     print(" ".join("*" * i).rjust(num * 2 - 1))
Enter the number of rows: 5
        *
      * *
    * * *
  * * * *
* * * * *

2
你的回答让我感到惊讶。我一直使用两个循环和一个条件来解决这个问题。 - lmiguelvargasf

1
如果您想将其反转并颠倒,可以使用以下方法:

num = int(input("Enter the number of rows: "))

for i in range(1, num + 1):
for j in range(1, num + 1):
    if i > j:
        print(' ', end=' ')
    else:
        print('*', end=' ')
print()

0
一种基于 f-string 的方法,因此是一种面向行布局的解决方案。如果每个字符之间的空格为1,则代码保持不变,因此每行具有固定长度 2*num-1
num = int(input("Enter the number of rows: "))

for i in range(1, num+1):
    print(f'{" ".join("*" * i):>{2*num-1}}')

输出

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)

不想说废话,但是你调用了这个函数吗? - Solaxun

0

如果您不允许使用 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()

或者,另一种选择:

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()

-1
以下代码将打印一个倒三角形:
for i in range(1,6):
    print("{:>5s}".format("*"*i))

输出:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接