【问题标题】:program in binary to decimal in python using array list使用数组列表在python中以二进制到十进制编程
【发布时间】:2018-07-04 04:55:25
【问题描述】:

您好,我是编程新手,我有一个项目来创建一个程序来在 Python 中将二进制转换为十进制。我必须利用存储在列表中的值并根据用户输入相乘。我不断收到有关 int/str 的错误。
任何帮助将不胜感激。请参阅下面的代码,了解我目前所拥有的内容。

denaryNumber = 0
binaryNumber = input("Please enter binary number: ")
placeValues = [128, 64, 32, 16, 8, 4, 2, 1]
for i in range(0, len(binaryNumber) -1):
    denaryNumber = denaryNumber + (binaryNumber(i) * placeValues[i])
print (denaryNumber)

【问题讨论】:

  • 你能在这里举个例子吗?

标签: python-3.x


【解决方案1】:

您的代码中存在一些问题。

  • 默认情况下,python 中的每个输入都被视为 'str' ,因此您的 binaryNumber 是 str
  • 要访问列表中的元素,请使用[] 而不是(),就像您在此处使用的那样:binaryNumber(i)
  • 由于你的二进制数是str,你不能对str应用数学运算,所以binaryNumber(i) * placeValues[i]是无效的。您需要像这样将 str 类型转换为 int :int(binaryNumber[i])

所以把你的最后第二行改成这样:

denaryNumber = denaryNumber + (int(binaryNumber[i]) * placeValues[i]) 

这样就可以了。

jbtw,只有当您的输入为 8 位时,您的代码才会返回正确的结果。

【讨论】:

    猜你喜欢
    • 2012-10-08
    • 2015-01-21
    • 2021-05-18
    • 2014-03-03
    • 2014-02-13
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    相关资源
    最近更新 更多