Traceback (most recent call last): File "C:/Users/DSX/Desktop/st0601.py", line 6, in <module> print(calculate(m)) File "C:/Users/DSX/Desktop/st0601.py", line 2, in calculate avg = sum(args) / len(args) TypeError: unsupported operand type(s) for +: 'int' and 'str'
时间: 2024-01-24 07:17:22 浏览: 62
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个错误提示表明你在计算平均数时,传入的参数中包含了字符串类型的数据,而这些字符串类型的数据不能和数字类型的数据进行加法运算。
你需要检查一下传入 calculate 函数的参数 args,确保它只包含数字类型的数据。如果 args 中包含了字符串类型的数据,你可以使用内置函数 filter() 来过滤掉这些数据。示例如下:
```python
def calculate(*args):
# 使用 filter 函数过滤掉 args 中的非数字类型数据
args = list(filter(lambda x: isinstance(x, (int, float)), args))
avg = sum(args) / len(args)
return avg
```
这样,函数就会自动过滤掉 args 中的非数字类型数据,避免了 TypeError 的错误。
阅读全文