如何从输出底部删除空格?

时间:2016-02-08 10:12:28

标签: python loops

我想获得以下输出?

*
**
***
**
*

这是我在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.

有谁知道这背后的原因是什么?对此有什么补救措施。

2 个答案:

答案 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)]))

*   
**  
*** 
**  
*