1. 程式人生 > >python中的冪函式、指數函式問題

python中的冪函式、指數函式問題

最近在調程式碼,碰到冪函式、指數函式,總是提示

ValueError: math domain error

ValueError: negative number cannot be raised to a fractional power

這些異常、錯誤,

發現裡邊有很多細節問題:

python中,想要表示a的b次方時,有兩種方法:

1,math.pow()這個內建函式

2,**運算子

這兩種方法效果是一樣的,但是當

b為分數,a為負數:當冪運算子的底數為負數、冪為分數時,Python會丟擲ValueError: negative number cannot be raised to a fractional power

異常,

這時有兩種方法可以解決此問題:

1,底數a正負均可不影響你的演算法的話,加一個絕對值就行了即abs(a);

2,如果底數a必須是正、或必須是負的話,需要採用複數進行運算。因此凡是遇到冪為分數的項,都將底數用complex()轉換為複數。

參考:http://hyry.dip.jp/tech/slice/slice.html/41