まっしーの貯蔵庫

思考のゴミ箱

python 累乗、有効数字

久しぶりにpythonをいじった。

File "blackbody_radiation.py", line 20, in <module>
    blackbody=func(nu,Temp)
  File "blackbody_radiation.py", line 10, in func
    return 2*h/(c**2)*(x^3)/(np.exp(h*x/(k_B*T))-1)
TypeError: ufunc 'bitwise_xor' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

クッソ当たり前なんだけど、pythonでは累乗は**。
^はpythonでは、XOR、すなわちビット演算子排他的論理和として受け取ってしまう。
latexとごっちゃになるのがいけない。

^と**を取り違えると上のようなエラーが出る

ちなみにpythonで例えば 6.626×10^{-27}とかいう有効数字を記述するときは、

6.626e-27

で十分。eの前に有効数字の実効的な値を、後ろに10の何乗なのかを記載するといい。この方が楽だなあ。(今日気付いた顔)


ソース
python - TypeError with ufunc bitwise_xor - Stack Overflow