2016-10-24 5 views
1

なぜユーザー入力結果をループすると、挿入された値が分割されるのですか?forループがユーザー入力の文字列を分割しているのはなぜですか?

text = ("Insert something: ") 
inputs = raw_input(text).strip("\n") 

for i in inputs: 
    print i 

結果

Insert something: 01 02 03 
0 
1 

0 
2 

0 
3 

期待される結果:

01 
02 
03 
+1

文字列ごとに反復処理を行うため、文字ごとに処理します。なぜそれは魔法のようにスペースに分割されますか? –

答えて

8

文字列は、個々の文字を含む、シーケンスです。 inputs文字列を繰り返しているので、個々の文字が得られます。

for i in inputs.split(): 

raw_input()の結果に.strip('\n')呼び出しは二つの理由のために冗長である:

あなたが最初のリストの中に文字列を分割する必要があり、空白で区切られた単語のリストを反復処理したい場合は

  • raw_input()は改行なしで入力された文字列を返すため、ここで改行文字を削除する必要はありません。
  • str.split() methodは引数なしで、任意の長さの空白(空白、タブ、改行など)を分割し、先頭と末尾の空白を削除します。したがって、があったとしても、削除する改行はであり、str.split()がこれを処理します。
+0

ああ、私には恥ずかしい、私はこの質問を投稿する前にもう少し待つべきだった。 –

2

split()とstrip()を混ぜ合わせたことがありますか?

+1

私は過去にユーザ入力を正しく処理する別の関数を持っているので、チャンスがあります。朝のコーヒーが足りないかもしれない –

関連する問題