2014-01-24 65 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 < 6age > 12都评估为false,我们知道6≤a≤12。没有必要检查它。

顺便说一句,range()返回可迭代,不是你可以与一个数字进行比较的东西。比较总是会失败,因为你比较了两个不兼容的东西。

+1

myAge也是一个字符串,不是一个整数,所以即使是非范围比较也不会正确... – geoffspear

1

您将输入分配给变量“myAge”,并在if语句中测试变量“age”。

更换

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: 打印(“你太年轻了,听到这个笑话。”) ELIF年龄> 12: 打印(“你太老了,听到这个笑话。”) 其他: 打印(笑话) 然而,现在告诉我,即使我输入的数字大于6,我也太老了,无法开玩笑。建议? – CeltsMan97

+0

raw_input()返回一个字符串,这将导致比较失败。 使用input(),Python会自动(尝试)将其转换为正确的类型。 –

+0

你不应该使用'input()'。无论用户输入什么,eval()都是可怕的想法。 – geoffspear