我正在尝试获取以下输出?
*
**
***
**
*
这是我在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.
有谁知道这背后的原因是什么,以及同样的补救措施是什么。
你需要
while n>=2:
在最后一个循环中。否则,在末尾绘制另一条具有零 (1-1=0) 星的线
为什么不用for
循环重写你的while
循环
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)]))
*
**
***
**
*