2015-10-28 7 views
0

Я найти его трудно петлю мой raw_input снова и снова, пока правильный ответ не введен (Im нуб)Как цикл ввода снова, пока правильный ответ вводится

вот вопрос:

напишите программу Python, которая вводит пользовательский ввод в виде строки. Пока строка не «Джон», добавьте каждую строку, введенную в список, до тех пор, пока не будет введен «Джон». Затем распечатайте список.

Пример выполнения программы (то, что должно отображаться в консоли питона при запуске):

Enter your name : <user enters Tim> 
Enter your name : <user enters Mark> 
Enter your name: <user enters John> 
Incorrect names: [‘Tim’, ‘Mark’] 

и это мой код:

answer = "John" 

nameString = [''] 

nameInput = raw_input("Enter a name") 

if nameInput in answer: 

    print nameString 

else: 

    nameString.append(nameInput) 

Я не совсем уверен, что код должны быть записаны для достижения этого цикла.

+1

Вместо этого используйте 'nameString = []'. Ваша версия - это список с 1 пустой строкой в ​​качестве первого элемента. Также вы используете 'if nameInput == answer:' потому что 'answer' не является списком. – Kamejoin

+1

У вас неправильный порядок для операндов 'in' - это' если игла в стоге сена' не 'если сена в иголке'. – tripleee

+0

http://sopython.com/canon/8/prompting-the-user-for-input-until-you-get-a-valid-response/ – tripleee

ответ

0

Вы знаете, что вам нужно в цикле, но вы не знаете, сколько раз. Это естественное место для использования , а.

answer = "John" 
nameString = [] 

nameInput = raw_input("Enter a name") 

while nameInput != answer: 
    nameString.append(nameInput) 
    print nameInput = raw_input("Enter a name") 
print("Incorrect Names: ", nameString) 
0

Создать пустой список, как это:

nameString = [ ] 

Используйте цикл, чтобы избыточно принимать входные данные от пользователя.

Если выполнено определенное условие, вырваться из цикла с оператором break.

В противном случае, поскольку nameInput не соответствует действительности, добавьте его в список.

Решение может быть, как показано ниже:

nameString = [] 

while(True): 
    nameInput=raw_input("Enter a name") 
    if nameInput!="john": 
     nameString.append(nameInput) 
    else: 
     break 

print "Incorrect Names:" , ",".join(nameString) 
Смежные вопросы