int()函数在Python中不接受字符串怎么办?

时间:2018-07-20 21:50:16

标签: python string int

我对编程还比较陌生,我想测试int()函数的基本转换能力。 当我写的时候:

>>> int("3",2)
11

显示它。但是,如果我使用:

>>> int('3',2)

它显示一个值错误,以2为基数的int无效文字:'3' 到底是怎么回事?例如,这不允许我使用int(str(a),2)。 如果有帮助,我正在使用Python 3.7.0。我对这个问题感到非常沮丧。

2 个答案:

答案 0 :(得分:2)

错误消息invalid literal for int() with base 2: '3'告诉您出什么问题了:在base 2中,唯一有效的数字是01。如果您尝试解析以2为底的字符串,则3是无效数字。

如果要从整数字符串中获取二进制字符串,则可以使用以下之一:

>>> bin(int("3"))
'0b11'
>>> bin(int("3"))[2:]
'11'
>>> "{0:b}".format(int("3"))
'11'

答案 1 :(得分:1)

来自documentation

  

如果给定base,则x必须是字符串,字节或字节数组   实例表示基数为整数的文字

因此,您需要为此调用提供一个以2为底的整数,即仅包含"0""1"的字符串。