我想获得以下输出?
*
**
***
**
*
这是我在python中的代码
n = int(input(" Please Enter any Number: "))
j=1
while j<=n:
print('*'* j)
j+=1
while n>=1:
print('*'* (n-1))
n=n-1
#print(n)
但问题是它给了我以下输出
*
**
***
**
*
basically I am getting an extra space after the output.
有谁知道这背后的原因是什么?对此有什么补救措施。
答案 0 :(得分:5)
你需要
while n>=2:
在最后一个循环中。否则,在末尾绘制具有零(1-1 = 0)个星的另一条线
答案 1 :(得分:4)
为什么不用while
循环重写for
循环,我认为range
更适合该任务?
n = 5
for i in range(1, n):
print('*' * i)
for j in range(n, 0, -1):
print('*' * j)
导致:
*
**
***
****
*****
****
***
**
*
修改强>
或者您甚至可以使用一个带有两个list comprehension
和str join
方法的衬垫来编写它:
n = 3
print('\n'.join(['*' * i for i in range(1, n)] + ['*' * j for j in range(n, 0, -1)]))
*
**
***
**
*