You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中避免IndexError将十进制整数转换为80进制?

十进制转80进制函数IndexError问题解决

你的代码触发IndexError的原因是定义的base_80字符集长度不足80个,导致当计算n%80得到78或79时,超出字符串的索引范围(字符串索引从0开始,长度78的话最大索引为77)。

数一下你当前的base_80字符数量:

  • 数字(0-9):10个
  • 小写字母(a-z):26个
  • 大写字母(A-Z):26个
  • 符号(-_.~!$&'()*+,:;/=):16个
    总计10+26+26+16=78个,差2个字符。

你需要补充两个字符到base_80字符串里,让总长度刚好为80。比如可以添加@和%(或你需求中指定的其他合法字符)。

修正后的代码如下:

def base10_to_base80(n):
    # 补充两个字符,使总长度为80
    base_80 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_.~!$&\'()*+,:;=/@%'
    if n == 0:
        return base_80[0]
    digits = []
    while n:
        digits.append(base_80[n % 80])
        n //= 80
    return ''.join(digits[::-1])

# 测试示例
decimal_number = 79
base_80_number = base10_to_base80(decimal_number)
print(base_80_number)  # 输出补充的第二个新字符,此处为%

如果有指定的80个字符集,直接替换base_80字符串即可,确保长度严格为80。

内容的提问来源于stack exchange,提问作者user23470475

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:25:02