Python PR

【FAQ】Pythonのよくある疑問点まとめてみた

記事内に商品プロモーションを含む場合があります

【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 : 引数、データ型等の不一致
ABOUT ME
努力のガリレオ
【運営者】 : 東大で理論物理を研究中(経歴)東京大学, TOEIC950点, NASA留学, カナダ滞在経験有り, 最優秀塾講師賞, オンライン英会話講師試験合格, ブログと独自コンテンツで収益6桁達成 【編集者】: イングリッシュアドバイザーとして勤務中(経歴)中学校教諭一種免許取得[英語],カナダ留学経験あり, TOEIC650点
Python学習を効率化させるサービス

 

Pythonを学習するのに効率的なサービスを紹介していきます。

まず最初におすすめするのは、Udemyです。

Udemyは、Pythonに特化した授業がたくさんあり、どの授業も良質です。

また、セール中は1500円定義で利用することができ、コスパも最強です。

下記の記事では、実際に私が15個以上の講義を受講して特におすすめだった講義を紹介しています。

 

【最新】UdemyでおすすめのPythonコース|東大生が厳選!10万を超える講座があるUdemyの中で、Pythonに関係する講座を厳選しました。また、本記事では、Udemyを使用しながらPythonをどのような順番で勉強するべきかを紹介しました。ぜひ参考にしてください。...

 

他のPythonに特化したオンライン・オフラインスクールも下記の記事でまとめています。

 

【最新】Pythonに強いプログラミングスクール7選|東大生が厳選Pythonの流行と共に、Pythonに強いプログラミングスクールが増えてきました。本記事では、特にPythonを効率的に学ぶことができるプログラミングスクールを経験をもとに厳選して、内容を詳しく解説しています。...

 

自分の学習スタイルに合わせて最適なものを選びましょう。

また、私がPythonを学ぶ際に使用した本を全て暴露しているので参考にしてください。