当我在python中输入前面带有0的小整数时,它们给出了奇怪的结果。为什么是这样?
>>> 011
9
>>> 0100
64
>>> 027
23
注意:Python版本2.7.3我已经在Python 3.0中进行了测试,显然现在这是一个错误。因此,这是特定于版本的。
编辑:它们显然仍然是整数:
>>> type(027)
`<type 'int'>`
这些是以8为底的数字(八进制数字)。一些例子:
Python 2(旧格式)
注意:这些形式仅适用于Python2.x
。
011
等于 1*(8^1) + 1*(8^0)= 9
0100
等于1*(8^2) + 0*(8^1) + 0*(8^0)= 64
027
等于 2*(8^1) + 7*(8^0)= 16 + 7 = 23
Python 3(新格式)
在Python 3中,必须使用0o而不是仅仅0表示一个八进制常量,例如0o11或0o27,等等。Python 2.x版本> = 2.6支持新格式和旧格式。
0o11
等于 1*(8^1) + 1*(8^0)= 9
0o100
等于1*(8^2) + 0*(8^1) + 0*(8^0)= 64
0o27
等于 2*(8^1) + 7*(8^0)= 16 + 7 = 23
问题内容: 我刚刚在python解释器上执行了以下程序: 现在,我已经看到了,但是正如链接所言,八进制的0在python中不再起作用(即在python3中不起作用)。但这是否意味着应该正确解释以0开头的数字的行为?是以base-2还是以正常base-10表示?既然不是这样,为什么python会那样表现呢?这是实施问题吗?还是语义问题? 问题答案: 我的猜测是,由于在python3.x中不再是八进制
问题内容: python中以下语句的含义是什么: 是一个对象。以上有什么价值?那是什么类型呢? 问题答案: 如果 计算为,则x设置为,否则为 认为是
问题内容: 嗨,我遇到了以下代码 这到底是怎么回事?我不确定“&”在做什么。 问题答案: 回答 该符号是按位与运算符。与1一起使用时,基本上会屏蔽该值以提取最低位,换句话说,它将告诉您该值是偶数还是奇数。 有关Python运算符的更多信息 有关更多信息,请参见:http : //wiki.python.org/moin/BitwiseOperators 为什么检查奇数与偶数比较有效 编辑:添加此部
问题内容: login 我已经看过很多次了,但是我不知道那是什么意思。 问题答案: 运算符计算给定表达式,然后返回。 操作者经常被用来仅获取原始值,通常使用“ ”(这是相当于“ ”)。在这些情况下, 可以改用全局变量(假设尚未将其分配给非默认值)。 这里提供了一个解释:operator。 您想要通过链接执行此操作的原因是,通常,URL会将浏览器重定向到评估该JavaScript结果的纯文本版本。但
问题内容: 在整数文字中使用“ 0”(零)作为前缀会将其基数更改为八进制。这就是为什么 将打印。但是使用“ F”作为后缀 将使其失去八进制基数(返回十进制)并进行打印。 有什么区别和?使用浮点运算时,“ 0”前缀有任何含义吗? 问题答案: 来自Java语言规范,关于浮点文字 FloatingPointLiteral: DecimalFloatingPointLiteral 十六进制浮点数 Deci
问题内容: 我试图在Python 3.3中使用旧的库(可追溯至2003年!)。当我导入它时,Python抛出错误,因为源文件中有符号,例如: 我猜这是该语言现在被放弃的标志。 它到底是什么意思,我应该用哪个(较新的)符号代替? 问题答案: 这意味着不等于。它取自(python的前身)此处: 订单测试(表示 “不等于” ) 我相信它是从Pascal那里获得的,Pascal是Guido开始使用的语言。