0

作为我使用过的例行程序的一部分

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 定义为整数。请问我错过了什么?

4

1 回答 1

0

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

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

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

于 2019-07-19T12:37:11.593 回答