嗨,我正在创建一个函数,从用户输入的整数列表中计算平均值。我得到一个错误:
下面是我的代码:ValueError: null literal for int() with base 10:
def calcmean (mylist):
listsum= 0
for index in mylist:
listsum = listsum + index
mean= listsum / len(mylist)
return mean
userinput= [int(input("Enter list separated by commas:"))]
print (mean (userinput))
应该可以:
userinput = [int(x) for x in input("Enter list separated by commas:n").split(', ')]
如何确保用户输入的数字完全正确?如果用户输入two/three/four/…连续逗号,如1,2,3,,4,,,,5
?应该处理得比这多得多。为了清楚起见,您应该将您的程序划分为3个阶段,包括:
Input
Process the input
Calculate mean
.
示例如下:
输入>userinput = input("Please type number separated by commas")
处理输入
# split numbers to items by commas.
num_array = userinput.split(",")
# chose items that are valid numbers
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
num_array = [int(item) for item in num_array if is_number(item)]
计算意味着
正如你在代码中所做的
print(mean(num_array))