如何从输出底部删除空格



我正在尝试获取以下输出?

*
**
***
**
*

这是我在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)]))
*   
**  
*** 
**  
*   

最新更新