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

Python代码触发'int'和'list'加法不支持报错的原因及修复方法

错误触发原因

你定义的z函数使用了*scores可变参数语法,该语法会将调用时传入的所有位置参数打包为一个元组赋值给scores变量。
你调用z(x)时,x是已经转换完成的整数列表,此时scores实际收到的是([100, 90, 80, 70, 60],)——仅包含1个列表元素的元组。执行sum(scores)时,函数会尝试将元组内的元素累加,默认初始值为int类型的0,0和列表相加就触发了该类型错误。

修复方案

你可以二选一修改:

  • 调用函数时对列表做解包处理,将代码最后一行的z(x)改为z(*x)。*x会把列表内的每个整数拆分为独立的位置参数传入z函数,此时scores会得到由所有分数组成的元组,原有计算逻辑可正常运行。
  • 修改函数定义,去掉可变参数标识,将def z(*scores):改为def z(scores):,让函数直接接收列表类型的参数即可。

修正后可运行代码示例(方案1)

def z(*scores):
    a=min(scores)
    b=max(scores)
    c=sum(scores)/len(scores)
    print(f"min : {a}\nmax : {b}\naverage : {c}")

y = input("type all scores. ex)100, 90, 80, 70, 60\n")
x = y.split(", ")
x = list(map(int, x))
z(*x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:06