【问题标题】:Error: Invalid literal for int() with base 2: ' '错误:具有基数 2 的 int() 的无效文字:“”
【发布时间】:2018-07-08 19:03:17
【问题描述】:

我使用的是巨大的二进制数,它们有 1024 位数字,有时此代码运行良好,但有时不行。我认为这很奇怪。 这是我用来将二进制转换为十进制的代码

def binToDec(d):
    z1 = (Random binary number) 
    z = z1[:d]
    n = int(z,2)
    num=float(n)
    return num

当代码失败时,他们会写信给我

n = int(z,2)
ValueError: invalid literal for int() with base 2: ''

有人可以帮忙吗?

【问题讨论】:

  • 您能否提供一个失败的数字示例?
  • @jordanm(和 Vitor)int('',2)(或任何其他基数)会引发值错误。我进行了编辑以使错误消息更清晰。
  • d 曾经是0 吗? z1 可以是空字符串吗?
  • 请编写一个简短的完整程序来演示错误。就目前而言,我们看不到您如何生成dz1。请参阅minimal reproducible example 了解更多信息。
  • 感谢所有 cmets 和答案。它有很大帮助。出现问题是因为没有数字可以转换为二进制,错误消息在这里说,但我以前不明白:ValueError: invalid literal for int() with base 2: ''

标签: python binary int


【解决方案1】:

int('',2) 或任何其他基数会引发 ValueError。您省略了堆栈跟踪的其余部分(坏主意),但必须有一个 bintoDec(0) 调用,可能 0 是某个其他变量的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多