You need to enable JavaScript to run this app. 为什么Python中用int()指定base=2转换二进制值时会报错
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python中用int()指定base=2转换二进制值时会报错

错误原因

  • 0b1101是Python原生的二进制整数字面量,赋值给a之后,a已经是值为13的int类型数据,不是字符串类的文本内容。
  • int()函数在显式传入base参数(也就是你写的第二个参数2)时,要求第一个参数必须是字符串、字节串这类可按进制规则解析的文本类型,设计上base参数的作用就是指定解析文本的进制,已经是整数的输入不需要也不支持搭配base参数使用,因此会抛出TypeError: int() can't convert non-string with explicit base错误。
  • 当你不指定base参数,单参数调用int()时,函数的作用是做通用类型转换:如果输入本身已经是int类型,会直接返回原值,所以代码可以正常运行输出13。

如果你需要用到base参数做进制转换,正确写法应该是将二进制内容定义为字符串:

a = "1101"
b = int(a, 2)
print(b)
# 输出结果:13

内容的提问来源于stack exchange,提问作者Nibin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 21:45:04