2017-10-05 15 views
0

数値の範囲が1行に印刷されるプログラムを書いています。しかし、私のコード:whileループとend = ''の問題

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

印刷コマンドの改行が終了しません。追加:

print() 

forループの後。

1

printの「終了」パラメータを' 'に設定したため、コードで同じ行に「Enter」と表示されます。したがって、「Enter」を印刷すると、新しい行ではなく同じ行に始まります。デフォルトの "end"は\nです。これは、print文の後に新しい行を出力することを意味します。

「Enter」を印刷する前に\nを追加することをお勧めします。これはあなたの問題を解決し、読みやすくなります。

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

そして、あなたがこのような結果表示されます:このようにコードを変更しようとするあなただけの1 print()ステートメントを追加する必要が

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

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

はこれを使用その後はforループ。これにより、範囲シーケンス内の要素が出力された後で改行が追加されます。

関連する問題