为什么会弹出"TypeError:不支持/:'str'和'int'的操作数类型",我该如何修复?
代码:
import sys
import statistics
list_num = sys.argv[1:]
print(list_num)
for i in range(0, len(list_num)):
if list_num[i].isdigit():
list_num[i] = str(list_num[i])
else:
list_num[i] = str(len(list_num[i]))
print(list_num)
print("Mode: " + str(statistics.mode(list_num)))
print("Median: " + str(statistics.median(list_num)))
输出:
['1','2','way','fdk','4','fdsfdsd']
['1'、'2'、'3'、'4'、'8']
模式:3
回溯(最近一次调用(:
文件"main.py",第12行,在
打印中("中位数:"+str(统计中值(list_num((,在中值中
返回(data[i-1]+data[i](/2
类型错误:不支持/的操作数类型:"str"one_answers"int">
您正在尝试使用字符串进行计算。在计算中值之前,不要将列表中的项目转换为字符串
import sys
import statistics
list_num = sys.argv[1:]
print(list_num)
for i in range(0, len(list_num)):
if list_num[i].isdigit():
list_num[i] = float(list_num[i])
else:
list_num[i] = float(len(list_num[i]))
print(list_num)
print("Mode:", str(statistics.mode(list_num)))
print("Median:", str(statistics.median(list_num)))
我已经将str((函数改为float((函数。您也可以使用int((,这取决于您想要实现的目标。
此外,您正在将模式和中值函数的结果转换为字符串。字符串是文本,而不是数字。你确定这就是你想要做的吗?
作为参数的数组list_num应该由数字、int或float组成。您有一个字符串列表:['1','2','3','3','4','8']。它应该是:[1,2,3,4,8],没有单引号。