【问题标题】:Converting decimal to base58check using Python 3.7使用 Python 3.7 将十进制转换为 base58check
【发布时间】:2019-11-27 21:53:25
【问题描述】:

作为我使用的例程的一部分

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def convertToBase58(num):
    sb = ''

    while (num > 0):
        r = num % 58   # divide by 58 and gives the remainder
        sb = sb + ALPHABET[r]
        num = num / 58;
    return sb[::-1]

这会返回一个错误,指出 r 必须是整数。但是使用 % 运算符似乎将 r 定义为整数。请问我错过了什么?

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为它是属于另一个 Stack Exchange 站点的通用 Python 编程问题。
  • 好的,我接受这个。我并不像我应该的那样了解 Python。但是,似乎没有专门的 Python Stackexchange

标签: python base58


【解决方案1】:

r 变量尚未定义为整数。但是,num 变量在循环的第二次迭代中被定义为float。这是循环中最后一行 num = num / 58 的结果。

除法运算符返回一个浮点数。在 Python 3.5+ 中使用 // 返回一个整数。

旧版本的 Python 可以使用math.floor

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 2011-08-13
    • 2016-08-13
    • 2020-08-06
    • 2018-07-24
    • 1970-01-01
    • 2016-05-28
    • 2013-03-10
    • 1970-01-01
    相关资源
    最近更新 更多