Skip to main content
 首页 » 编程设计

python之为什么 python int() 方法不喜欢 base =0 中的数字 05000408

2025年05月04日12虾米哥

new_sn = int(sys.argv[5], 0)  

如果我传入数字 05000408 或更高,我得到

ValueError: invalid literal for int() with base 0: '05000408' 

但是如果我传入 05000407 或更低的值,或者去掉前导的 0,它就可以正常工作。 05000408 这个数字有什么神奇之处?

请您参考如下方法:

在大多数语言中,前面带有零的整数文字被认为在 octal notation 中,它只使用数字 0 到 7。这​​意味着 8 是无效的八进制数字,这就是 Python 不喜欢它的原因。

去除前导零。我非常怀疑您打算使用八进制表示法。