有一个问题与现有的类似,但不太适合我的情况。我正在使用 Python 3.4 并想使用统计模块的模式功能,但是当没有模式时,python 终止程序并给我一个错误。有没有我可以写的 if 语句来检查我的列表中是否有重复项,如果没有,则在模式功能开始之前显示打印消息,并阻止模式功能运行?
到目前为止,我有:
UserNumbers=input("Enter number sequence separated by spaces: ")
nums = [int(i) for i in UserNumbers.split()]
Average = mean(nums)
print ("The mean is ", Average)
Middle = median(nums)
print ("The median is ", Middle)
Most = mode(nums)
print ("The mode is ", Most)
我是初学者,所以很难正确表达我的问题,请原谅不正确的术语。
请您参考如下方法:
根据documentation , 如果数据为空,或者没有一个最常见的值,则会引发 StatisticsError。因此,仅在列表中包含重复项并不能确保存在模式。
首选的解决方案是使用异常机制,例如:
nums = [1,2,3,4,5,5,6,7,7,8,9]
try:
m = mode(nums)
except StatisticsError:
print ("No unique mode found")
