2016-10-03 8 views
0

空のリストに文の最初の単語を追加しようとしています。現在のコードは以下の通りです:whileループでリストに文字を追加する

sentence = input("Enter sentence: ") 

subject = [] 
print (subject) 

x = 0 
while True: 
    letter = sentence[x] 
    if letter != " ": 
     print (letter) 
     subject.append(letter) 
     x = x + 1 

print (subject) 

それは現在、これが出力します。

Enter sentence: Cherries are red fruit 

[] 
C 
h 
e 
r 
r 
i 
e 
s 

空のリスト...ヘルプに結果を追加する私の試みを無視しているようだ、してください!あなたがより良いforループを使用すると思い

+1

'x = x + 1'は' if letter!= "": 'と書かれていますので、入力に空白がある場合は無限ループになります。 – depperm

答えて

1

、それはあまりエラーが発生しやすいです:

sentence = input('Enter sentence: ') 

subject = [] 
print(subject) 

for letter in sentence: 
    if letter == ' ': 
     break 
    else: 
     print(letter) 
     subject.append(letter) 

print(subject) 

あなたが単語に文を分割したい場合は、単純なケースであなたを助けることができるstr.split方法は、あります:

words = sentence.split() 
first_word = words[0] if words else None 
print(first_word) 
+0

whileループは、プログラマーがエラー – depperm

+0

@deppermを持っていない限り、プログラマーはそれらのエラーを本当にしたいと思うのですが:) – skovorodkin

0

なぜ、一度に1つの文字を追加するのではなく、split()機能を使用しない:

sentence = input("Enter sentence: ") 
split_sentence = sentence.split(" ") 
subject = [] 
subject.append(split_sentence[0]) 
print (subject) 

またはそれ以上simplier:

sentence = input("Enter sentence: ").split(" ") 
subject = [] 
subject.append(sentence[0]) 
print (subject) 

またはあなただけが

sentence = input("Enter sentence: ").split(" ") 
subject = sentence[0] 
print (subject) 

split()を追加する必要はありません1つの入力を希望している場合でも、文字列はパラメータで定義分割し、リストを返します。 。

関連する問題