我試圖做一個計劃範圍內檢查Herone三角爲tries
到max_tries
但math.sqrt()
是讓我頭疼ValueError異常:數學域錯誤使用math.sqrt()時
這是我的代碼
import math
max_tries = 10000
tries = 1
half_perimeter = ((tries * 3) + 3)/2
for num in range(tries,max_try,1):
area = math.sqrt(half_perimeter * (half_perimeter - tries) * (half_perimeter - tries - 1) * (half_perimeter - tries - 2))
if isinstance(area, int) == True:
print (tries)
tries = tries + 1
else :
tries = tries + 1
每當我運行,我從Python獲得ValueError: math domain error
。我的代碼有什麼問題?整個錯誤返回是
Traceback (most recent call last):
File "C:\Users\phong\AppData\Local\Programs\Python\Python35\Herone Triangle.py", line 9, in <module>
area = math.sqrt(half_perimeter * (half_perimeter - tries) * (half_perimeter - tries - 1) * (half_perimeter - tries - 2))
ValueError: math domain error
我還是一個腳本kiddy,剛剛進入Python。謝謝你們
你正在取一個負數的平方根。 –
您的代碼沒有定義變量'max_try',這使得我們更難以運行您的代碼或找到確切的問題。請參見[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –