2017-10-05 239 views
0

我在寫一個程序,其中一行數字範圍打印在一行。但是我的代碼:while循環和結束的麻煩=''

while True: 
    user = int(input('Enter')) 
    if user > 0 : 
     for x in range (0,user +1): 
      print(x,end=' ') 

具有以下的輸出:

Enter9 
0 1 2 3 4 5 6 7 8 9 Enter 

爲什麼進入打印在同一行?我該如何改變這一點?

+1

因爲您使用了'end =''',所以在''while'塊的末尾,只需放一個'print()',它將打印一個換行符 –

+0

我無法重現您的問題。我看到'Enter9',但在'0 1 2 3 4 5 6 7 8 9'後面,'Enter'出現在換行符上。 – toonarmycaptain

回答

1

您的打印命令不會以新行結束。 Add:

print() 

for之後循環。

1

由於您將print的「結束」參數設置爲' ',因此您的代碼在同一行上打印「Enter」。因此,當您打印「Enter」時,您從同一行開始,而不是新行。 「結束」的默認值是\n,這意味着在打印語句後它將打印一個新行。

我建議您在打印「Enter」之前添加\n。這將解決您的問題,並會更容易閱讀。試試你的代碼改成這樣:

while True: 
    user = int(input('\nEnter: ')) 
    if user > 0 : 
     for x in range (0,user +1): 
      print(x,end=' ') 

,你會看到類似這樣的結果:

Enter: 7 
0 1 2 3 4 5 6 7 
Enter: 8 
0 1 2 3 4 5 6 7 8 
Enter: 4 
0 1 2 3 4 
Enter: 1 
0 1 
2

使用此:

while True: 
    user = int(input('Enter')) 
    if user > 0 : 
     for x in range (0,user +1): 
      print(x,end=' ') 
     print() 

您必須添加只有一個print()聲明在for循環後。這確保了在範圍序列中的元素被打印出來之後添加換行符。