目前,我有一个代码,可以输出一个星号三角形,如下所示:
*
* *
* * *
* * * *
* * * * *
这是它的代码:
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()
现在,如何使用/修改上面的相同代码,使三角形看起来像这样:
*
* *
* * *
* * * *
* * * * *
有什么建议吗?
答案 0 :(得分:4)
使用字符串方法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
*
* *
* * *
* * * *
* * * * *
答案 1 :(得分: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)
答案 2 :(得分: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()
答案 3 :(得分:-1)
以下代码将打印一个倒三角形:
for i in range(1,6):
print("{:>5s}".format("*"*i))
输出:
*
**
***
****
*****