【FAQ】Pythonのよくある疑問まとめてみた
自分がPythonを書いていて疑問に思ったことや友人からよく質問されることに答えていきます。
常に更新していきます!!
よくみる『if __name__ == '__main__':
』はなんのためにある?
py
ファイルを『python ....py
』のように実行したときに、if __name__ == '__main__':
以降が実行されます。
実は、if __name__ == '__main__':
を書かなくてもコードは実行されるのですが、import ...py
としたときも実行されてしまいます。
インポートしただけで、コードが実行されてしまうのは、煩わしいのでif __name__ == '__main__':
というおまじないを書くというわけです。
このくらいで理解しておけば大丈夫だと思います…(詳しい説明は、What does if __name__ == “__main__”: do を参考にしてください。)
予約後ってなんですか?
pythonのプログラム上であらかじめ決定されている言葉を予約語と呼びます。
例えば、『for』や『try』などが予約語に対応します。
全て大文字で書かれた変数は特別な意味を持ちますか?
あくまで慣習ですが、全て大文字の変数は定数扱いされます。
実際は、変更できますがプログラム上では変更しないお約束です。
目的は、主にコードの可読性を上げるために使われます。
パッケージとモジュールの違いはなんですか?
パッケージは、最も大きいひとまとまりで、パッケージ内の一部のファイルをモジュールと言います。
変数や関数はどんなルールで名前をつけることが望ましい?
実は、関数や変数(クラスやメソッドも)には、名前の付け方のルールが存在します。
そのルールは、命名規則と呼ばれています(詳しくは、Pythonコードのコーディング規約)を参考にしてください。
簡単に命名規則を紹介します。
- 変数, 関数, メソッド, モジュール : 小文字のみ、必要なら『_』で区切る
具体例 :sample_function
- クラス : 先頭だけ大文字、『_』は使用しない
具体例 :ClassName
- クラス内のみで使用される変数・メソッド : 小文字のみ、先頭に『_』を付ける
具体例 :_sample_private_method
- 定数 : 全て大文字、必要なら『_』で区切る
具体例 :ALL_CONSTANT
型指定を行うことはできる?
型を指定してするというよりは、使用して欲しい型を関数やメソッドにメモすることができます。
一般的には、型ヒントとか呼ばれています。
具体的には、以下のように型ヒントを入力できます。
def sum(a: int, b: int) -> int:
total = a+b
return total
あくまで型ヒントなので、異なる型を入力してもエラーは生じません。
関数やクラスがどのような役割をするのか忘れてないようにする方法
型指定のみならず、クラスや関数には、仕様や使用方法を説明する『docstring』を書くと良いです。
『docstring』には大きく分けて以下の三つの書き方があります。
- Google style
- Numpy style
- reStructuredText
それぞれの書き方は、docstringのstyle3種の例を参考にしてください。
私は、共有するコードに対してGoogle styleでdocstringを記入することが多いです。
Google StyleのDocstringの書き方については、『GoogleスタイルのPython Docstring』が詳しいです。
エラーメッセージが理解できません
ライブラリごとにエラーメッセージは異なりますが、よく現れる主要なエラーを理解しておくことは重要です。
一応、主要なエラーを以下にまとめておきます。
SyntaxError
: 構文の間違い(括弧やコロンの位置など)IndentationError
: インデントがずれているZeroDivisionError
: 0で割った場合に発生IndexError
: タプルやリストで範囲外のインデックスを参照NameError
: 定義していない名前の変数、関数、クラスを使用した場合TypeError
: 引数、データ型等の不一致
Pythonを学習するのに効率的なサービスを紹介していきます。
まず最初におすすめするのは、Udemyです。
Udemyは、Pythonに特化した授業がたくさんあり、どの授業も良質です。
また、セール中は1500円定義で利用することができ、コスパも最強です。
下記の記事では、実際に私が15個以上の講義を受講して特におすすめだった講義を紹介しています。
他のPythonに特化したオンライン・オフラインスクールも下記の記事でまとめています。
自分の学習スタイルに合わせて最適なものを選びましょう。
また、私がPythonを学ぶ際に使用した本を全て暴露しているので参考にしてください。