gpt4 book ai didi

Python - 为什么 `int(x, 2)` 只能用于字符串,不能用于整数?

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:58 27 4
gpt4 key购买 nike

我有这个示例代码:

test = 1011
test2 = int(test, 2)
print(test2)

会报错

int() can't convert non-string with explicit base

当我将 test 包装到 str() 中时,代码有效,因为 int 转换需要一个字符串作为输入。

我的问题:为什么会这样,在接受 int 的同时是否没有简单的方法来转换 bases?我发现整数转换方法需要一个字符串作为输入是相当违反直觉的。

最佳答案

因为将它应用于整数没有意义

在您的示例中,test 是一个数字。它没有基础。所有数字都是这样的:二进制 0x1011、十进制 11 和十六进制 0x0B 是完全相同的数字。三种写法只不过是同一事物的不同写法,就如同用汉字写三、三一样。当然,在计算机内部,数字以二进制表示——例如0b1111110011 - 但可以显示在您喜欢的任何基地。基数仅在将数字转换为字符串或从字符串转换时才相关。

但是,如果您想使用二进制表示设置test,您可以简单地写:

test = 0b1011

关于Python - 为什么 `int(x, 2)` 只能用于字符串,不能用于整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com