Добавление букв в список в цикле while

#python #while-loop #append

#python #цикл 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
  

Кажется, он игнорирует мою попытку добавить результат в пустой список… Помогите, пожалуйста!

Комментарии:

1. x=x 1 находится внутри if, который говорит if letter != " ": , что это будет бесконечный цикл, если в вашем вводе есть пробел

Ответ №1:

Вам лучше использовать for цикл, он менее подвержен ошибкам:

 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)
  

Комментарии:

1. циклы while больше не подвержены ошибкам, если программист не выдает в них ошибку

2. @depperm, конечно, и программистам действительно нравится делать эти ошибки 🙂

Ответ №2:

Почему бы не использовать split() функцию вместо добавления одной буквы за раз:

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

или еще проще:

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

или даже если вам нужен только один ввод, вам не нужно добавлять

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

split() разбивает строку, определенную параметром, и возвращает список.

Ответ №3:

С циклом while:

 sentence='Nice weather outside'
subject = []
x = 0
while x < len(sentence):
    letter = sentence[x]
    subject.append(letter)
    x = x   1
print(subject)