Python 为什么';这个数字不正确吗?

Python 为什么';这个数字不正确吗?,python,Python,我的代码: binary_value = list(input("Input a binary number: ")) def binaryToDecimal(binary_value): last_number = (binary_value[-1]) last_numberi = (last_number * pow(2,0)) last_number2 = (binary_value[-2]) last_number2i = (las

我的代码:

binary_value = list(input("Input a binary number: "))

def binaryToDecimal(binary_value):
    last_number = (binary_value[-1])
    last_numberi = (last_number * pow(2,0))

    last_number2 = (binary_value[-2])
    last_number2i = (last_number2 * pow(2,1))

    last_number3 = (binary_value[-3])
    last_number3i = (last_number3 * pow(2,2))

    last_number4 = (binary_value[-4])
    last_number4i = (last_number4 * pow(2,3))
    
    decimal_value = last_numberi + last_number2i + last_number3i + last_number4i 
    
    print(decimal_value) 

    return decimal_value

当我输入1011时,我试图得到的答案是11,但是,我得到的答案是11100001111111,有人能帮我吗?

因为您正在将输入转换为一个列表,python认为这是一个字符串列表(您的列表将是
['1','0','1','1']
),这就解释了为什么你会得到这个答案
11100001111111

例如,python将“1”作为字符串,并将其乘以3,得到111


为了解决这个问题,你可以将你的列表转换为整数列表,或者简单地在每个列表中添加
int(最后一个数字)

是的,我知道它有点硬编码,但我是新来的,所以请帮我回答是111000011111请阅读此内容,你是否只需要一个4号二进制@菠萝Z23你真的在某处调用你的函数吗?@Astros是的,把一个4位数的二进制数转换成十进制汉克斯兄弟这解决了我的问题problem@pineapplez23如果你能将答案标记为最佳答案,让其他人受益,让人们知道这个问题已经解决了,那就不客气了。