2016-10-20 11 views
0

上の空白を削除し、私はこのコードを持っている:Pythonの - だから、出力

print("%d" % a, end=(" ")) 

それは動作しますが、出力では、最後の番号の後に空白があります。私は最後の空白を取り除く必要があります。私の出力は空白で区切って同じ行に表示する必要があります。最後の値の後には空白を入れないでください。ここで

の例を示します(nは入力されているので、仮定のn = 5)

0 1 1 2 3 

私は.strip、.joinを試してみたが、それらのどれも働きました。正しい出力を得るためには何が必要ですか?これはあまりにも単純な質問の場合は申し訳ありませんが、私はPythonの新機能です。

編集:EDIT2:

a, b, i = 0, 1, 0 
n=int(input()) 
for j in range(0, n): 
    while i < n: 
     print("%d" % a) 
     a, b = b, a + b 
     i += 1 
+2

をリストは 'a'ですか? 'a'の入力とは何ですか?あなたが探しているものを理解するために、あなたの質問を編集し、あなたの入力に関する情報を追加してください。 – estebanpdl

+1

'end =(" ")'はどうしますか? – njzk2

+0

私の更新された答えを見てください。また、あなたがしようとしていることを明確にするために、関連するすべてのコードを質問に含めてください。 – elethan

答えて

1

あなたはend引数と末尾のスペースを自分で追加しています。

print("%d" % a, end=(" ")) 

印刷を意味しa' 'で終わります。 end引数を削除すると、末尾のスペースが印刷されなくなります(デフォルトの'\n'が代わりに印刷されます)。詳細は、the docs for print()を参照してください。

end引数は、印刷する文字列には影響しません。つまり、aendの影響を受けません。文字列aの末尾にスペースがある場合、a.strip()はそのスペースを削除します。あなたのケースでstrip()によって削除されない理由は、印刷する文字列にスペースが含まれておらず、代わりにprint()関数によってビジュアル出力に追加されているためです。

更新:

前にしたり、編集中のコードスニペットの後に何が起こるのかは謎であるから、と言うのは難しいですが、あなたが何かやりたいように聞こえる:

a, b, i = 0, 1, 0 
n=int(input()) 
nums = [] 
for j in range(0, n): 
    while i < n: 
     nums.append(str(a)) 
     ... 
     # Based on your desired output, 
     # I assume you modify the value of `a` somwhere in here 
     ... 
print(' '.join(nums)) 
+0

しかし、私は末尾を削除する場合=( "")私の出力は – desperate

+0

+ 1つの番号ごとに – desperate

+1

入力値を入れて[リスト]の文字列に変換して "ジョイント(リスト) – ddbug

関連する問題