我最近才开始自己学习DS&A,在本书的递归部分,它列出了下面的代码作为用于将整数转换为字符串的递归的基本示例: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,10)),,出现错误:TypeError: string indices must be integers.我究竟做错了什么?
2 回答
慕后森
TA贡献1802条经验 获得超5个赞
您收到此错误是因为第二个 return 语句中 n/base 的值是一个浮点数。只需将其显式转换为整数即可。
def to_str(n, base):
if n < base:
return convert_string[n]
else:
return to_str(int(n/base), base) + convert_string[n%base]
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
在 Python 3 中,/
运算符始终返回一个float
对象,即使您要除的两个数字都是整数。如果您想要整数除法,请改用//
运算符:
return to_str(n // base, base) + convert_string[n % base]
添加回答
举报
0/150
提交
取消