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

Python TypeError求助:字符串索引必须为整数而非字符串

解决Python控制台彩色文本函数的TypeError问题

错误原因分析

你的代码对字典的操作逻辑完全搞反了:

  • 第一行colours=coloursAvailable[colour]会把colours变成对应颜色的字符串(比如传入"COGREEN"时,colours就是'\33[42m'),而非保留字典结构。后续用colours[colour]索引字符串时,因为字符串仅支持整数索引,自然触发TypeError。
  • 颜色存在性检查逻辑错误:应该判断colour是否在coloursAvailable的键列表中,而非检查它是否在已经变成字符串的colours里。

修正后的代码

coloursAvailable={
  "CCLEAR": '\033[0m',
  "COGREEN": '\033[42m'
}
def colourDyn(text, colour):
    # 先校验颜色是否在支持列表中
    if colour not in coloursAvailable:
        print('colour undefined or not available')
        return text  # 校验不通过时返回原文本,避免后续报错
    
    print("function passed colour check")
    # 直接从原字典中取颜色值拼接文本
    return f'{coloursAvailable[colour]}{text}{coloursAvailable["CCLEAR"]}'

关键改动说明

  1. 删除错误的colours=coloursAvailable[colour]赋值,直接操作原字典coloursAvailable
  2. 将颜色校验逻辑修正为colour not in coloursAvailable,正确判断传入的颜色是否合法
  3. 返回语句中直接从字典取对应值,避免对字符串进行错误索引操作
  4. 增加校验失败时的返回逻辑,防止程序继续执行出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:37:08