我正在尝试用输入语句输入数字,一切正常,唯一的问题是当我用“0”开始数字时。它给出了错误的结果。有人能解释一下到底发生了什么,为什么会给出错误的结果吗。你知道吗
下面是一个小例子:
>>> a = input("> ")
> 12345
>>> a
12345
>>> a = input("> ")
> 012345
>>> a
5349
>>> print a
5349
>>> if a == 012345: print "matched"
matched
我不明白。谢谢你的帮助!(Windows XP、Python 2.7.3)
Tags:
在Python中,以
0
开头的数字以8(八进制)为基数。您将注意到以0
开头的数字具有8
或9
将引发异常。你知道吗顺便说一句,您不应该在python2中使用
input()
,因为它会计算输入。改用raw_input()
,然后将其转换为int
。如果您想摆脱base 8问题,那么将10
作为第二个参数传递给int()
(base):在python2中,以
0
开头的数字将其标记为八进制(以8为基数)。你知道吗12345十月=5349十二月
^{} 计算从流中读取的任何内容—因此它被读取为一个数字并作为整数返回。你知道吗
听起来像是在寻找^{} ,它给出了从流中读取的字符串
(因此
input('> ')
与eval(raw_input('> '))
相同)正如@Tim所说,整数值似乎出乎意料,因为python将该值解释为八进制。你知道吗
相关问题 更多 >
编程相关推荐