我的任务是制作一个程序,查找用户定义的数字集的中值、模式和平均值。我相信这部分已经完成了,但是如果列表为空,那么也应该返回一个“0”。我推导我的号码表的方法是通过
enterNumbers = list(map(int,input("Enter Numbers : ").strip().split(' ')))[:]
这将返回ValueError: invalid literal for int() with base 10: ''
显然,这将只接受整数作为参数,但我不知道从哪里开始纠正这个问题
完整代码如下:
#Define median , Mode and Mean
def median(enterNumbers):
enterNumbers.sort()
middle = len(enterNumbers) // 2
if len(enterNumbers) % 2 == 1:
return enterNumbers[middle]
else:
return enterNumbers[middle] + enterNumbers[middle - 1] / 2
def mode(enterNumbers):
numberDictionary = {}
for digit in enterNumbers:
number = numberDictionary.get(digit, None)
if number == None:
numberDictionary[digit] = 1
else:
numberDictionary[digit] = number + 1
maxValue = max(numberDictionary.values())
modeList = []
for key in numberDictionary:
if numberDictionary[key] == maxValue:
modeList.append(key)
return modeList
def mean(enterNumbers):
mean = 0
for num in enterNumbers:
mean += num
return mean / len(enterNumbers)
#Define Main Function
def main():
enterNumbers = list(map(int,input("Enter Numbers : ").strip().split(' ')))[:]
enterNumbers.sort()
print("\n"," Number List ","\n---------------------","\n",enterNumbers)
print("\n","median, mode mean?","\n---------------------")
answer = input()
if answer == "median":
answer = median
elif answer == "mode":
answer = mode
elif answer == "mean":
answer = mean
print(answer(enterNumbers))
main()
这将适用于您:
我强烈建议您重构代码。但这会纠正你的错误
您可以在代码的这一部分中使用“Try Except”。将处理一般错误,即使用户键入字符串
相关问题 更多 >
编程相关推荐