python - 为啥在python中使用int()将二进制转换为整数会在将2作为基本参数时给出错误

Posted

技术标签:

【中文标题】python - 为啥在python中使用int()将二进制转换为整数会在将2作为基本参数时给出错误【英文标题】:Why does converting binary to integer using int() in python gives an error when give 2 as the base argumentpython - 为什么在python中使用int()将二进制转换为整数会在将2作为基本参数时给出错误 【发布时间】:2021-08-05 06:56:00 【问题描述】:

我尝试了以下代码,

a=0b1101
b=int(a,2)
print(b)

它给了我一个错误。

TypeError: int() can't convert non-string with explicit base

但是当我不提及基础时,它就可以正常工作,

a=0b1101
b=int(a)
print(b)

【问题讨论】:

【参考方案1】:

开头的零在 python 中具有特殊的含义。例如。 0x 表示十六进制数。 在使用 int() 函数时,我们在二进制数以整数形式存储时提供第二个参数。例如,

b=int(a,2)

但是在将实际二进制数转换为整数时,我们不提供第二个参数。例如,

b=int(a)

【讨论】:

以上是关于python - 为啥在python中使用int()将二进制转换为整数会在将2作为基本参数时给出错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥 int 在 Python 中需要三倍的内存?

Python+int('35',8)为啥等于29?

为啥在使用 json.dumps 时,python dict 的 int 键会变成字符串?

为啥 Python 在打印 int then string 后添加空格? [复制]

python字符串为啥不能用int处理?

为啥这个参数列表在 Python 中不会改变?