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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章