我正在我的大学学习 python 初学者类(class),我准备明天进行异常测试。 我正在尝试从列表中计算出几何平均值。当我在列表中输入一个负值时,python 计算几何平均值并给我一个复数(显然)。 但是,在准备我的测试时,我希望在列表中有负值时引发异常,但我不知道该怎么做?有人愿意帮忙吗?
我在 python3.4 工作。如果你想在这里看到我的代码。关于如何使我的代码更有效率的任何其他建议让我知道。提前致谢。
#LOAD A LIST
while True:
try:
string = input("please enter a list of numbers separated by commas \n:",)
L = [float(x) for x in string.split(",")]
#print(L)
break
except ValueError:
print("There seems to be a value error in that list")
pass
#COMPUTE GEOMETRIC MEAN
def gm(L):
cnt = 1
try:
for i in range(len(L)):
cnt=cnt*L[i]
geo = (cnt)**(1/len(L))
return geo
except ValueError:
print("Value error!")
except TypeError:
print("type error!")
print("geometric mean is, ", gm(L))
请您参考如下方法:
第一种方法,自己测试并引发异常。
第二种方法,使用math.pow 代替内置运算符。
