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 不喜欢它的原因。
去除前导零。我非常怀疑您打算使用八进制表示法。
