在Python中,int()函数不接受字符串有什么问题



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

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

它显示了这一点。但是,如果我使用:

>>> int('3',2)

它显示了一个值错误,对于基为2的int无效文字:"3"发生了什么事?例如,这不允许我使用int(str(a(,2(。如果有帮助的话,我将使用Python 3.7.0。我对这个问题感到很沮丧。

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

若您想要从一个整数字符串中提取一个二进制字符串,您可以使用以下方法之一:

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

来自文档:

如果给定了base,那么x必须是字符串、字节或字节数组表示基数中整数文字的实例

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

最新更新