除法后出现“字符串索引必须为整数”错误

时间:2019-03-06 17:07:33

标签: python

我正在阅读《 Python的算法和数据结构问题解决》一书。我在第四章中正在使用示例。这个例子直接来自本书,但是当我运行它时,除了错误外什么都没有。这是书中的错误吗?还是我在这里遗漏了什么?

def to_str(n, base):
    convert_string = "0123456789ABCDEF"
    if n < base:
        return convert_string[n]
    else:
        return to_str(n / base, base) + convert_string[n % base]

print(to_str(1453, 16))

运行此命令时出现以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in to_str
  File "<stdin>", line 6, in to_str
  File "<stdin>", line 4, in to_str
TypeError: string indices must be integers

这本书是错了还是我错过了什么?如果是我的错,那我可能会错过什么?我已经整整重读了本章两次。我在文字中没有遗漏任何内容。

1 个答案:

答案 0 :(得分:0)

您的书是为Python 2编写的; a / b始终返回整数。

在Python 3中(您正在使用); a / b的结果为float(又称十进制),如果要在Python 3中获取整数结果,则可以使用a // b