Python初心者の陥りがちなミス
というより「Python初心者だった自分がやったミス」の方が合ってるだろうか。
今回はやってしまいがちなミスを紹介。
インデントがズレてエラーになる
Pythonがjavaやphpと違う点としてスコープを中括弧{}で指定せずにインデントを使うというのがある。
他の言語であれば {}
で閉じていれば中のインデントがどうなっていようとプログラムは動くが、Pythonの場合はインデントがスコープ指定の役割も担っているので、正しく記述しないとエラーになってしまう。
正しい例
for i in range(0,3): print("print i") print(i)
結果
print i 0 print i 1 print i 2
エラー例
for i in range(0,3): print("print i") print(i) # インデントが1字ずれている
結果
IndentationError: unindent does not match any outer indentation level
型の自動変換でエラーになる
javaは変数の型を明示的に指定して、別の型の変数に代入しようとするとエラーになるが、Pythonは型を明示的に指定しなくてもよい。
しかも大体の型変換はPythonが暗黙的に変換してくれるので便利。
しかし便利が故に、型変換できずにエラーになった場合や型を誤認識して no attribute
エラーになったりすると解決に時間がかかったりする。
エラー時には type(変数)
で変数の型を調べてみると良いかもしれない。
-
PythonからMySQLにinsertしようとしたら'numpy.float64' object has no attribute 'translate'になる
pip install で権限エラーになる
WindowsでPythonのインストール先を program files
等にしている場合、ライブラリをインストールする pip install
を行うと 権限エラー
が発生することがある。
原因は見たままで program files
に書き込む権限が不足している。
コマンドプロンプトを起動して pip install
を行っていると思うが、コマンドプロンプトを起動する際に右クリックから 管理者として実行
を選択することでエラーを回避できる。