我创建了一个 python 程序,用于排列并查找用户输入的一系列数字的中位数。我不断收到此错误。
回溯(最近一次调用最后一次): 文件“C:/Users/NL-LP3/Desktop/Corses/Python/Tests Programs/median user input.py”,第 24 行,位于 中位数(^系列) 类型错误:median() 需要 1 个位置参数,但给出了 4 个
series=[]
finished = False
while not finished:
number = input("Please enter a number, when you are done hit ENTER")
if len(number)>0:
series.append([number])
print ("Number Entered")
else:
finished = True
print (series)
def median(data):
data.sort(key=int)
elements = len(data)
middle = int(elements/2)
if elements%2 ==1:
print (data[middle])
else:
half = ((data[middle])+(data[middle-1]))/2
print (half)
median(*series)
最佳答案
这里有三个问题:
- 您正在将字符串传递到数组中,需要将其转换为 int
您将一个数组传递给另一个数组,该数组会给出如下输出:
[[5]、[6]、[7]]
您正在尝试使用 * 系列中的 * 来解压数组。
必须是这样的:
[5, 6, 7]
更改此行:
series.append(int(number))
您还只需将数组传递给中位数,如下所示:
median(series)
关于list - 通过函数传递列表的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41725370/