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

Python TypeError切片索引报错:首个IF语句正常其余行执行失败

问题原因
  • 直接报错原因:你在列表切片操作中使用了字符串类型作为索引,比如name_length_list["0":name_list[name_number]]中的"0"是字符串,Python要求列表的切片索引必须是整数、None或者实现了__index__方法的对象,字符串不满足要求,所以抛出TypeError。
  • 额外逻辑错误:
    1. 你的while循环会先把name_number从0累加至8才会退出循环,循环结束后name_number的值固定为8,后续所有判断name_number为0-7的if分支永远不会执行
    2. break语句不能写在while循环外部,属于语法错误
    3. 切片的右值你写的是name_list[name_number],这是字符串类型的名称,本身也不能作为索引使用
    4. 你最后打印时拼接的"0"+"1"+..."7"结果是字符串"01234567",同样不能作为列表索引使用
修正后的实现代码

如果你要实现对列表中名称长度求和的需求,可参考如下代码:

name_length_list = []
name_list = ["Jennifer","Albatross","Justin","Dave","Shankarnarayan","Ezra","Alice","Kwabena"]
total_length = 0

for name in name_list:
    current_len = len(name)
    print(current_len)
    name_length_list.append(current_len)
    total_length += current_len

print("各名称长度集合:", name_length_list)
print("总长度:", total_length)
print("Code is done")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:09:03