目前,我有一个代码,输出这样的星号三角形:
*
* *
* * *
* * * *
* * * * *
这里是代码:
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()
现在,如何使用/修改上面的相同代码,使三角形看起来像这样:
*
* *
* * *
* * * *
* * * * *
有什么建议吗?
使用字符串方法str.rjust
:
str.rjust
这是可以通过以下两种方法之一执行的功能:
>>> 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
*
* *
* * *
* * * *
* * * * *
如果您不被允许使用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()
以下代码将打印一个倒三角形:
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))