为什么if和elif语句没有完全执行?

时间:2017-12-04 03:47:38

标签: python

在阅读2.7文档的基础上,以下代码应该从我能说的内容中正确执行。我调用 raw_input(text)来获取变量年龄的输入,但它总是返回您可以看到评分为R的电影。

import sys

age = raw_input("What is your age? ")

if age >= 17:
    print "You can see rated R movies."

elif age < 17 and age > 12:
    print "You can see a rated PG-13 movies."

else:
    print "You can only see PG movies!"

根据我的逻辑,如果传递给年龄的值不大于或等于17,它应该移动到下一个语句。这不是我得到的结果。它总是返回额定R线。例如,我输入3,它仍然给我额定的R响应。如果我翻转&gt;到&lt;然后它总会返回“你只能看到PG电影!”线。

思想?

2 个答案:

答案 0 :(得分:5)

raw_input返回一个字符串。您需要先将输入转换为int,然后才能对数字进行测试。

age = int(raw_input('How old are you? '))

答案 1 :(得分:0)

当您使用raw_input方法时,要求通过键盘输入值,即使您要求输入整数值,输入的所有内容都将被读取为字符串而不是整数。

您的解决方案:

age = int(raw_input("What is your age? ")). 

无论引入什么,都要解析为int。