bana bir istisna veririm python'da yeni başlayanlar kursuna devam ediyorum ve yarın istisnalar konusunda bir test hazırlıyorum. Geometrik ortalamayı bir listeden yapmaya çalışıyorum. Listeye negatif bir değer girdiğimde, python geometrik ortalamayı hesaplar ve bana karmaşık bir sayı verir (belli ki). Ancak, testim için hazırladım, listede negatif bir değer olduğunda bir istisna oluşturulmasını istiyorum, ancak bunu nasıl yapacağımı bilmiyorum. kimse yardım ederdi.Python'u karmaşık bir sayıya (-2)^0.5'den nasıl engellerim ve bunun yerine
Python3.4'te çalışıyorum. Kodumu burada görmek istiyorsan. Kodumu nasıl daha verimli hale getireceğime dair başka bir tavsiye bile edeyim. şimdiden teşekkürler.
#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))
Re: İkinci yöntem: "math.pow()", bir "ValueError: math domain error" istisnasını artıracaktır; ancak bu, "pow()" işlevini yalnızca kullanmak için daha basit olur “ValueError: negatif sayı kesirli bir güce yükseltilemez” anlamına gelir; bu da muhtemelen daha açık ve bu nedenle çoğu insanın anlaması muhtemelen daha kolay olacaktır. – martineau