为了账号安全,请及时绑定邮箱和手机立即绑定

Python(递归):递归中的“类型错误:字符串索引必须是整数”

Python(递归):递归中的“类型错误:字符串索引必须是整数”

一只斗牛犬 2021-06-30 17:43:31
我最近才开始自己学习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]


查看完整回答
反对 回复 2021-07-06
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

在 Python 3 中,/运算符始终返回一个float对象,即使您要除的两个数字都是整数。如果您想要整数除法,请改用//运算符:

return to_str(n // base, base) + convert_string[n % base]


查看完整回答
反对 回复 2021-07-06
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信