2014-01-24 2 views
0
age = 0 

joke = 'What do you call a cow with no legs? Ground beef.' 

myName = raw_input('Hello! What is your name?') 

myAge = raw_input('Tell me your age, ' + myName + ', to hear a joke!') 

if age < 6: 
    print('You are too young to hear this joke.') 

elif age > 12: 
    print('You are too old to hear this joke.') 

elif age == range(6, 12): 
    print(joke) 

Код, когда работает, только говорит, что я слишком молод, чтобы услышать шутку, даже если я поставил число выше 6 или даже выше 12. Не могли бы вы Помогите мне исправить эту проблему?Код, чтобы рассказать анекдот, если пользователь находится между определенным возрастом

+2

Как мог один номер ('age') всегда равна целому ряду чисел? –

ответ

1

Нет необходимости в последних elif. Просто используйте else без какого-либо условия.

Если оба значения age < 6 и age > 12 оцениваются как ложные, мы знаем, что 6 ≤ a ≤ 12. Нет необходимости проверять его.

BTW, range() возвращает итерационный, а не то, что вы можете сравнить с числом. Сравнение всегда терпит неудачу, потому что вы сравниваете две вещи, которые несовместимы.

+1

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

1

Вы назначаете ввод в переменную «myAge» и проверяете переменную «age» в инструкции if.

Заменить

myAge = raw_input('Tell me your age, ' + myName + ', to hear a joke!') 

с

age = input('Tell me your age, ' + myName + ', to hear a joke!') 
+0

Это мой код: joke = 'Что вы называете коровой без ног? Говяжий фарш.' Myname = raw_input ('!? Привет Как вас зовут') возраст = raw_input ('Скажи мне свой возраст,' + Myname + ', чтобы услышать шутку!) если возраст <6: печать ("Вы слишком молоды, чтобы услышать эту шутку.) Элиф возраст> 12: печати (" Вы слишком стары, чтобы услышать эту шутку.) еще: печати (шутка) Тем не менее, в настоящее время говорит мне, что я слишком стар для шутки, даже если я ставлю число больше 6. Предложения? – CeltsMan97

+0

raw_input() возвращает строку, и это приведет к сбою сравнения. Использовать input() и Python автоматически (попытаться) преобразовать в правильный тип. –

+0

Вы не должны использовать 'input()'. Это 'eval()' s все, что пользователь вводит, что является ужасной идеей. – geoffspear

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