当我添加二进制数字时,我实际上无法输入一个没有错误

时间:2013-11-12 18:36:39

标签: python python-3.x

print ("Input Binary Number")

num1 = bin(input())

print( "Now another one")

num2 = bin(input())

answer = ( num1 + num1)

print ("adding them together will give you" , answer)

input ("press enter to finish")

我无法输入二进制数

3 个答案:

答案 0 :(得分:1)

您可能需要先将输入转换为int然后转换为bin

num1 = bin(int(input()))

你也可能意味着:

answer = (num1 + num2)

答案 1 :(得分:1)

让我们在最基本的输入,并努力达到最终结果。

首先,input()会返回一个字符串,因此1011101将为"1011101"

现在我们要将字符串存储为int,因此我们使用int(input())

不幸的是,这会读取基数为10的字符串,我们希望在基数2中读取,因此我们使用int(input(), 2)

我们不使用bin()函数let,因为此函数将int转换回字符串,而“+”操作执行连接,而不是添加。

现在值正确存储为int,因此我们可以正常添加:answer = num1 + num2

一旦我们存储了总和,我们希望将结果保存为二进制字符串。为此,如果我们要删除bin附加的前导“0b”,我们会写answerString = bin(answer)answerString = bin(answer)[2:]

现在我们可以打印answerString来显示结果。

我写的一个演示:

num1 = int(input(), 2)
num2 = int(input(), 2)
answer = num1 + num2
answerString = bin(answer)[2:]
print(answerString)

输入:

1001001
1010100

输出:

10011101

答案 2 :(得分:0)

bin将整数转换为字符串,给出数字的二进制表示。您需要做的是将输入作为字符串并使用int进行转换。 int采用第二个参数作为基础 - 在本例中为2。

num1 = int(input(), 2)之类的东西可以解决问题。