我正在尝试将字符串转换为二进制整数:
string = "0b011"
i = int(string)
但是这段代码提出了ValueError
。但是,以下代码可以正常工作:
i = int(0b011)
但是在这里我传递了二进制文字,而不是字符串。如何转换字符串?
答案 0 :(得分:3)
试试这段代码:
string = '0b011'
i = int(string, 2) # value of i is 3
它使用内置过程int()和可选的base参数,该参数指示转换中使用的基数 - 在本例中为两个,来自文档:
base参数给出转换的基数(默认为10),可以是[2,36]或0范围内的任何整数。如果base为零,则根据string的内容确定正确的基数;解释与整数文字相同。
答案 1 :(得分:2)
使用第二个可选参数(base)告诉int()
该字符串是base 2
:
int(str[,base])
>>> string = "0b011"
>>> int(string,2)
3
答案 2 :(得分:2)
>>> from ast import literal_eval
>>> literal_eval("0b011")
3