为什么str(077)变成"63"

rai*_*isd -5 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
Run Code Online (Sandbox Code Playgroud)

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

unw*_*ind 8

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

然后将77解释为7*8 + 7 = 56 + 7 = 63的十进制数.

从阅读你的代码我不是很确定正在发生什么(标题提到了一个电话,str(077)但我没有看到),但我仍然认为这是相关的.

  • 你试过OP的代码吗?我发现它打印的字符串以''077'开头. (2认同)