Skip to main content
 首页 » 编程设计

python之如何阻止 python 将 (-2)^0.5 计算为复数,并给我一个异常(exception)

2025年05月04日26cyq1162

我正在我的大学学习 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 代替内置运算符。