#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)