ValueError:使用Python 3

时间:2016-02-25 12:29:47

标签: python-3.x runtime-error

我创建了自己的AES版本(婴儿版)然而一切正常。

某些二进制数字会以某种方式获得' b'在他们的例子中:b1b10101 我不太了解python如何使用二进制转换但是在尝试使用:pepee = int(pepe,2)转换为小数时。当字符串包含' b'。

时,它会抛出标题中提到的错误

我在这里找到了另一个针对此错误的答案,但是该解决方案对我不起作用。使用'格式(pepe,' b')'为我抛出一个错误。 我怀疑它是为Python 2编写的。

我需要知道,如何阻止这些b在我的二进制字符串中出现,或者我如何将它们转换回原始位值。

示例代码:

subList2 = ['b1', 'b1', '00', '00']
subStr = b1b10000

subStr = ''.join(subList2)
subDec = int(subStr,2)

请注意我并不打算将这些b出现在字符串中,它们会在运行时出现

2 个答案:

答案 0 :(得分:1)

您是否尝试制作一个简单的代码片段来转换二进制字符串?你从哪里得到二进制字符串?例如,如果您使用bin()创建二进制字符串,则该字符串将包含“b”字符。

print(bin(10))
# Outputs: 0b1010

但如果您使用format(int, 'b'),则不会包含“b”。

# Set test to a binary string and print it
test = '101001'
print(test)

# Convert test from binary string to int and print it
test = int(test, 2)
print(test)

# Convert test from int to binary string and print it
test = format(test, 'b')
print(test)

答案 1 :(得分:0)

确定, 我搞定了。 我在我的代码中发生了一个无意义的错误,即产生二进制转换的减号。它创建了这些'b'字符代替减号。现在已经修好了。