Python 3.x 如何将二进制字符串转换为等效的数值?

Python 3.x 如何将二进制字符串转换为等效的数值?,python-3.x,Python 3.x,我正试着把toBase10(101)吐出来5。除了101之外,我还需要它来处理数字。我知道python中内置了一个二进制转换器,但我搞不懂 现在我有 def toBase10(x): int( 'x' , 2 ) == x return x 我得到一个错误,无法转换带显式基的非字符串。为什么我不能在这里使用x?试试看 def toBase10(x): return int(x, 2) 然后可以传递字符串或int print toBase10(101)

我正试着把
toBase10(101)
吐出来
5
。除了101之外,我还需要它来处理数字。我知道python中内置了一个二进制转换器,但我搞不懂

现在我有

def toBase10(x):
    int( 'x' , 2 ) == x
    return x
我得到一个错误,无法转换带显式基的非字符串。为什么我不能在这里使用x?

试试看

def toBase10(x):
    return int(x, 2)
然后可以传递字符串或int

    print toBase10(101)
    print toBase10('101')

我认为int cast错误是因为您传入的是一个数字而不是字符串,尽管这看起来很奇怪-->“int(x,2)==x”

我将整数转换为字符串,然后转换为二进制,可以轻松转换为整数:

def binaryconvert(x): 
    x = str(x) 
    binarynumber = int(x, base=2)
    convertnumber = int(binarynumber)
return convertnumber

print(binaryconvert(101))
#the answer would be 5
如果您的输入已经是二进制的,还有另一种方法:

def binaryconvert(x):
    convertnumber = int(x)
    return convertnumber

x = int(input("Input: "),2)
print(binaryconvert(x))

欢迎来到堆栈溢出!你的问题很可能是重复的:我在不久前通过一些调整使它工作起来,谢谢你的帮助欢迎。请在发表下一篇文章之前查看StackOverflow.com/help上的主题。语法和拼写很重要。不要找借口,不要乱七八糟地说“请/帮助/谢谢”。好的答案总是受欢迎的。随着时间的推移,未来的访问者会从您的帖子中学到一些东西,以应用于他们自己的编码问题,因此大多数投票都会累积。这是学习和分享的地方。如果您看到重复的问题,请将其标记为重复问题。雷姆:总是鼓励解释,欢迎使用文档链接(但也总是从链接中嵌入必要的信息)。期待您的见解。
def binaryconvert(x):
    convertnumber = int(x)
    return convertnumber

x = int(input("Input: "),2)
print(binaryconvert(x))