我对编程比较陌生,我想测试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中,唯一有效的数字是0
和1
。如果您试图解析以2为基数的字符串,则3
是一个无效数字。
若您想要从一个整数字符串中提取一个二进制字符串,您可以使用以下方法之一:
>>> bin(int("3"))
'0b11'
>>> bin(int("3"))[2:]
'11'
>>> "{0:b}".format(int("3"))
'11'
来自文档:
如果给定了base,那么x必须是字符串、字节或字节数组表示基数中整数文字的实例
因此,您需要为该调用提供一个表示以2为基数的整数的字符串,即仅包含"0"
或"1"
的字符串。