我是新來的蟒蛇,我需要一些幫助。使用錯誤消息作爲語句
我有一個python腳本來找到圓心的X座標。如果r1很小,則xA1和xA2是複數(表示錯誤消息:ValueError:數學域錯誤)。我的問題是,如何使用此錯誤消息爲一個while語句?我必須複製while語句下面的整個代碼嗎?是否可以鏈接到第一個方程xs2 = r3 * math.sin(beta2r)?
謝謝你的回答。
羅馬
import math
r1=0;
r2=110.5;
r3=212.5;
beta2d=35;
beta1dpoz=45;
beta2r=beta2d*math.pi/180
xs2=r3*math.sin(beta2r)
ys2=r1-r3*math.cos(beta2r)
kruh1=math.pow(xs2,2)+math.pow(ys2,2)
kruh2=math.pow(r1,2)+math.pow(r3,2)-2*r1*r3*math.cos(beta2r)
xA1=1.0/2*((xs2*(1+((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2)))))+(ys2*(math.sqrt(((2*(math.pow(r1,2)+math.pow(r2,2)))/(math.pow(xs2,2)+math.pow(ys2,2)))-(math.pow(((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2))),2))-1))))
xA2=1.0/2*((xs2*(1+((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2)))))-(ys2*(math.sqrt(((2*(math.pow(r1,2)+math.pow(r2,2)))/(math.pow(xs2,2)+math.pow(ys2,2)))-(math.pow(((math.pow(r1,2)-math.pow(r2,2))/(math.pow(xs2,2)+math.pow(ys2,2))),2))-1))))
xAmat=[xA1,xA2]
xA=max(xAmat)
while ('ValueError: math domain error'):
r1=r1+0.1
.
.
.
xA=
你想在這裏做什麼?就像這樣,while循環將永遠循環,因爲condition是一個非空字符串,總是計算爲「True」。 – rlms
噢,我的天啊,你會看看這兩條線有多長。 –
只要計算結果產生一個值,您是否希望它停止,而不是錯誤? – wwii