print "What is your name?",
name = len(raw_input())
print name
print "How old are you?",
age = int(input())
print "What month were you born in? ",
month = int(input())
if (month>12) or (0>month):
print "That does not exist"
else:
all = (name+age+month)
print "Your name length plus your age plus",
print "the month you were born is equal to:",
print all
如果你运行代码它可以运行但是当提示输入一个月号时,如果你输入8它可以工作,但是如果你输入08它不会。有人可以告诉我为什么。我使用的是Python 2.7
答案 0 :(得分:6)
在python2.x中,0
是八进制数字的前缀......
>>> 010
8
所以,有些数字无效......例如08
(因为那超出了八进制数的范围)。
如果您更改代码以使用int(raw_input('...'))
,那么它应该有效,因为int
总是假定为10,除非您另有说明。
>>> int('08')
8
答案 1 :(得分:3)
根据文档
,您使用的是input()
Equivalent to eval(raw_input(prompt)).
“8”是有效的python,但“08”不是。
将您的来电更改为raw_input()
,它会按预期工作。