2011-12-25 2 views
0
answer == raw_input("Do you like python?") 
if answer == "yes": 
     print "That is great" 
elif answer == "no" 
     print "that is disappointing" 
else: 
     print "that is not the answer to my question" 

Проблема с этим кодом заключается в том, что python 2.7.2 игнорирует мои первые два условия, но отвечает на последний. Почему это? Я около двух с половиной недель нового обучения в python, и я искал другие ресурсы. Вот ссылка на то, откуда я изначально получил информацию от http://www.upriss.org.uk/python/PythonCourse.htmlесли блок не оценивается как ожидалось

+2

В примере внизу http://www.upriss.org.uk/python/session2.html показано 'answer = raw_input (...)' с помощью одного '=', как здесь, ответы. Вы сделали ошибку, повторив пример? –

+2

-1: Какой ужасный вопрос. Можно ли исправить заголовок, чтобы описать реальный вопрос? –

ответ

11

Вы используете == вместо = в первой строке кода. Что касается кода, который вы указали, answer никогда не присваивается значение.

О, и в строке elif answer == "no" отсутствует двоеточие.


Здесь есть печенье:

answer = raw_input("Do you like python?") 
if answer == "yes": 
    print "That is great" 
elif answer == "no": 
    print "that is disappointing" 
else: 
    print "that is not the answer to my question" 
+0

Все еще в значительной степени в состоянии покоя, и он по-прежнему игнорирует мои первые два кодекса и выполняет только последний. Я помещаю недостающие двоеточия, и я назначил значение для «ответа». Что вы предлагаете мне попробовать дальше. –

+2

Я не хочу звучать несимпатично, но я, честно говоря, не понимаю, как это возможно, _сумма, что вы обновили свой исходный код ошибки на основе предложений, которые вы получили здесь. Посмотрите, вот доказательство того, что он работает: http://ideone.com/rH1kL. Я не знаю, что еще тебе сказать. –

0
answer = raw_input("Do you like Python?") 
if answer.lower() in ("yes", "y"): 
    print "That is great." 
elif answer.lower() in ("no", "n"): 
    print "That is disappointing." 
else: 
    print "That is not the answer to my question." 
+3

-1; это не ответ на его вопрос. –

+1

Как это не так? Спасибо за бессмысленное понижение. –

+0

Вы улучшили код, а не указали, что с ним было не так. Хотя вы исправили дефект случайно, вы не объяснили, что это было. Его вопрос заключался в том, почему он терпел неудачу, а не как его можно было продлить. –

5

Подобно ответ Мэтта Болла, но немного более подробный (с учетом Аскер):

Там есть существенная разница в Python между «=» и «==»

«=» используется для присвоения значения переменной, как видно из следующего ING.

my_variable = "value" 

"==" используется для сравнения двух значений.

if my_variable == "value" 

Конечно, переменная должна иметь значение, прежде чем вы сможете проверить это значение! В противном случае, как и отправка вашего секретаря после содержимого пустого конверта.

ОЧЕНЬ легко путать «=» и «==», поэтому не чувствуйте себя плохо. Мой первый код в Python выглядел как спагетти. : P

С наилучшими пожеланиями!

Смежные вопросы