2016-02-08 36 views
1

我想獲得以下輸出?如何從輸出底部刪除空格?

* 
** 
*** 
** 
* 

這是我在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

下一次,如果你決定打高爾夫球。試試這個''\ n'.join('*'* int(i)for str(pow(int('1'* n),2)))'(Works until n = 9) –

回答

5

您在最後一個循環需要

while n>=2: 

。否則爲零(1-1 = 0),恆星的另一條線是在結束

+0

我是這麼傻,我沒有看到,謝謝你的幫助 –

4

繪製爲什麼不for環,其是因爲我認爲更適合與range該任務重寫while循環?

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

* 
** 
*** 
** 
*