2014-11-02 2 views
2

Я пытаюсь создать простой скрипт, который будет задавать вопрос, на который пользователь будет вводить ответ (или может появиться приглашение с возможностью выбора ответов?), И программа выведет ответ на основе ввода.(Beginners Python) Создание if/else-заявлений, зависящих от ввода пользователем?

Например, если бы я сказал

prompt1=input('Can I make this stupid thing work?') 

я бы что-то вдоль линий

if prompt1='yes': 
    print('Hooray, I can!') 

else prompt1='No': 
    print('Well I did anyway!') 

elif prompt1=#an answer that wouldn't be yes or no 
    #repeat prompt1 

Я, вероятно, буду об этом неправильно. Пожалуйста, будьте как можно более наглядными, поскольку это упражнение для меня. Заранее спасибо!

+0

Используйте '==' для сравнения равенства и используйте инструкцию 'else'. – Christian

ответ

1

Вы довольно близко. Читайте хороший учебник :)

#!python3 
while True: 
    prompt1=input('Can I make this stupid thing work?').lower() 

    if prompt1 == 'yes': 
     print('Hooray, I can!') 
    elif prompt1 == 'no': 
     print('Well I did anyway!') 
    else: 
     print('Huh?') #an answer that wouldn't be yes or no 
  • while True будет цикл программы навсегда.
  • Используйте == для проверки равенства.
  • Используйте .lower(), чтобы было легче проверить ответы, независимо от случая.
  • if/elif/elif/.../else - правильная последовательность для тестирования.

Вот версия Python 2:

#!python2 
while True: 
    prompt1=raw_input('Can I make this stupid thing work?').lower() 

    if prompt1 == 'yes': 
     print 'Hooray, I can!' 
    elif prompt1 == 'no': 
     print 'Well I did anyway!' 
    else: 
     print 'Huh?' #an answer that wouldn't be yes or no 
  • raw_input используется вместо input. input в Python 2 попытается интерпретировать ввод как код Python.
  • print - инструкция вместо функции. Не используйте с ним ().
+0

Я копирую/вставляю это в свой PyCharm, и я получаю эту ошибку, когда пытаюсь ввести ответ. (да или нет) –

+0

Traceback (последний последний звонок): Файл «C:/Пользователи/Shawn/PycharmProjects/helloworld/Test Prograsm.py», строка 3, в prompt1 = input («Могу ли я сделать эту глупость ( Файл «», строка 1, in ИмяError: имя «да» не определен –

+1

Вместо этого вы должны использовать Python 2.x. 'print()' является функцией в Python 3, поэтому я предположил, что вы используете Python 3. используйте 'raw_input' в Python 2. Обновите теги вопросов, чтобы указать свою версию Python. –

1

Другой пример, на этот раз как функция.

def prompt1(): 
    answer = raw_input("Can I make this stupid thing work?").lower() 
    if answer == 'yes' or answer == 'y': 
     print "Hooray, I can!" 
    elif answer == 'no' or answer == 'n': 
     print "Well I did anyway!" 
    else: 
     print "You didn't pick yes or no, try again." 
     prompt1() 

prompt1() 
Смежные вопросы