Python学習編5回目です。
前回は東京大学のPython学習ページで演算と条件分岐を学びました。今回は1-4. テストとデバッグ。
実は、生じたバグを取る対処法よりも、そもそもバグが生じにくくする予防法の方が大切です。 Pythonにおいて特に重要視されているのが、コーディングスタイル、つまりコードの書き方です。 読みにくい(可読性の低い)コードだと、些細なミスが生じやすく、また見つけにくいからです。
わかる。これ時間効率の話なんだろうけど、バグ取りばからいやってると萎える心理的な面もある。
今回は説明だけで練習問題がなかったのでChatGPTに練習問題を出させよう。
入力:Pythonの簡単なプログラムをPEP8に従って書いてください。ただし、このとき1か所だけPEP8に従わない書き方としてください。
出力:了解しました。PEP8に従ったPythonの簡単なプログラムを書き、1か所だけPEP8に反する部分を含めます。
以下のプログラムは、簡単な関数を定義し、その関数を使用しています。PEP8に従わない箇所を1か所だけ含めますので、それを見つけることができるかどうか挑戦してみてください。
pythonCopy code
def greet(name):
“””
Given a name, returns a greeting.
“””
return f”Hello, {name}!”
#PEP8に反する部分がここにあります
greeting = greet(“World”)
print(greeting)
このコードでは、関数定義、ドキュメンテーションコメント、文字列のフォーマットなど、多くのPEP8の規約に従っています。しかし、指定された箇所にPEP8に反する書き方が含まれています。それを特定してみてください。
これらの問題はPythonの基本的な条件分岐の理解と実践に役立ちます。それぞれの問題に対して、自分でコードを書いてみて、それから実行してみてください。もしサポートが必要な場合は、ぜひ聞いてください。
うん、わからん。
出力:PEP8に違反している部分は、実際にはコメントの後ろにあるコードの行です。PEP8では、関数定義やクラス定義の後に2行の空行を入れることが推奨されていますが、この例では関数定義の後に空行が1行しかありません。これがPEP8違反の部分です。
知らなかった。
入力:PeP8のスタイルのうち、重要なもの、間違いやすいものを10個挙げてください。
出力:PEP 8(Python Enhancement Proposal 8)は、Pythonコードの書き方に関するスタイルガイドです。特に重要かつ間違いやすい部分を10個挙げます。
- インデント – タブではなくスペースを使用し、1レベルのインデントにつき4スペースを使う。
- 最大行長 – 1行は最大79文字まで。長い行は適切に折り返す。
- 関数とクラスの間隔 – トップレベルの関数やクラスの定義の間には2行の空行を入れる。クラス内のメソッド定義の間には1行の空行を入れる。
- インポート – インポートはファイルの最初で、標準ライブラリ、サードパーティのライブラリ、ローカルアプリケーション/ライブラリの順にグループ分けし、それぞれのグループ間に空行を入れる。
- スペースの使用 – 演算子の前後やコンマの後にはスペースを入れるが、括弧やブラケット、ブレースの直内側にはスペースを入れない。
- コメント – コメントは明確で最新の情報を反映するものでなければならず、不要なコメントは避ける。コメント行は「#」の後にスペースを1つ入れる。
- 命名規則 – クラス名は
CamelCase
、関数や変数名はsnake_case
で書く。常に意味のある名前を付ける。 - 比較演算子 –
None
との比較は==
ではなくis
を使用する。 - 文字列の連結 – 文字列の連結には
+
よりもjoin
メソッドを使用することが推奨される。 - 例外処理 –
except
文では具体的な例外を指定し、裸のexcept:
を避ける。
うーん、これらを気にしながら練習するのは脳の容量(メモリ)が足りなくなる。コード書いてみたときに「PEP8に違反している箇所を指摘して、修正してください」と聞くルーチンを作るべきか。
次回に続く