为什么str(077)变成“63”

时间:2015-10-29 14:37:20

标签: python

必须创建一个生成随机电话号码的功能。

from string import digits
from random import choice 

def random_phone_number():
    number = str(077) + ''.join(choice(digits) for _ in range(8))
    return number

print random_phone_number() // prints 6344940334

我预计电话号码从077开始,而不是从63开始。这笔交易是什么?

1 个答案:

答案 0 :(得分:8)

因为以零开头的数字意味着它在基数8中,即八进制形式。

77然后被解释为7 * 8 + 7 = 56 + 7 = 63十进制。

通过阅读你的代码,我并不确定发生了什么(标题提到了str(077),但我没有看到),但我仍然认为这是相关的。