kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

無料で受験できる Python 新試験「PythonZen & PEP 8 検定試験」に合格した

2022年3月1日に β リリースになった「一般社団法人 Python エンジニア育成推進協会」の新試験「PythonZen & PEP 8 検定試験」に合格した💡現在まだ β だけど合格すると「本認定」になる.PythonZen (PEP 20 - The Zen of Python)PEP 8 から出題されるため,どのように Python で「良いコード(良いとは何だろう?)」を書くかというお作法の理解を確認できる.試験とは言え,受験料は「無料」だし自宅で「24時間いつでも」受験できるから気軽に挑戦してみると良いんじゃないかと✌️

www.pythonic-exam.com

プレスリリースを読んでいたら本試験をリリースした背景が載っていた.Python を知らない人が書いている書籍PythonZen や PEP 8 を知らない講師 と書いてあり,プログラミング教育界隈としては危機的状況に思える.本試験で全てを解決できるとは思わないけど,PythonZen や PEP 8 を意識するきっかけにはなるし価値はあると思う.本試験の普及を応援するためにもブログを書いている.

Python 需要の増加に伴い、Python の関連書籍やプログラミングスクールが増える一方、Python を知らない人が書いている書籍や PythonZen や PEP 8 を知らない講師が、不適切な Python 文法を教えてしまうケースが散見されています。

試験概要 🐍

試験概要は以下のサイトに載っている.申込みをしたらすぐにメールで試験 URL が送られてきて受験できる.場合によっては迷惑メールになるという注意点が載っていたけど Gmail で本当に迷惑メールに判定されていて最初気付かなかった😇

  • 試験名称 : PythonZen & PEP 8 検定試験
  • 概要 : PythonZen (The Zen of Python) と PEP 8 に関する知識を問う試験
  • 受験料 : 無料 ✌
  • 問題数 : 20 問(全て選択問題)
  • 合格ライン : 70 %
  • 試験方式:WBT (Web Based Training) → ビデオ監視など特別な要件はなく気軽に受験できる🌸
  • 出題範囲:PythonZen と PEP 8 より出題

pythonzen-pep8-exam.jp

PythonZen (PEP 20 - The Zen of Python) 🐍

PythonZen (PEP 20 - The Zen of Python) は以下のサイトに載っている.Python を書くときの「格言(心構え)」とも言える.個人的に好きなのは以下!なお Zen を意味している.

  • Readability counts.(読みやすさは重要)
  • Although never is often better than right now.(でも今すぐやるよりもやらない方が良いことも多い)

www.python.org

また Python インタプリタを起動して import this を実行すると PythonZen (PEP 20 - The Zen of Python) を表示できる!

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

PEP 8 🐍

PEP 8 は以下のサイトに載っている.Python の「コーディング規約」としてよく使われていると思う.コードのお作法として良し悪しを宣言している部分もあるし,例えば,文字列に使う引用符である "' は推奨までは宣言せず「統一すること」と書いてあったりもする.最終的には PEP 8 をディスカッションのテーマにして,プロジェクトで決めていく必要がある.

www.python.org

個人的には import 順序の理解が曖昧だったり,Ruby に慣れていて無意識に { eggs: 2 } と書いてしまって不要な半角文字が入ってしまう場合があったりするけど,普段は pycodestylePylint を使って CI で検知している.

github.com

PEP 8 はサンプルコードも載っていて英語でも比較的読みやすいとは思うけど,日本語に翻訳するプロジェクトもあって,更新もされている.以下も合わせて参考にすると良いと思う.

pep8-ja.readthedocs.io

まとめ 🐍

2022年3月1日に β リリースになった「PythonZen & PEP 8 検定試験」に合格した💡ほとんど準備はせず,PythonZen (PEP 20 - The Zen of Python)PEP 8 をザッと1度読んですぐに受験した.1問間違えてしまって「95点」だった.間違えた問題と回答もメールで送られてくるので復習もしやすくて良かった.合格者番号は PEP-0-000233 だからそこそこ早く合格できたかも!(そもそも2日前まで新試験のリリース情報に気付いてなかったことが悔やまれる🌀)

もし PythonZen (PEP 20 - The Zen of Python)PEP 8 どちらも未経験の場合は,サンプルコードを書きながらドキュメントを1,2度読んでみると十分合格ラインには到達できる気がする💪

まとめると「PythonZen & PEP 8 検定試験」は無料で受験できる Python 新試験でおすすめ!特に「合格したから○○」という価値を求めるのではなく,PythonZen (PEP 20 - The Zen of Python)PEP 8 を学ぶことにより,Python でコードを書く前の準備運動になったり,プロジェクトメンバー間で共通認識を築いたりするきっかけとして有効だと思う!

関連試験 🐍

なお「一般社団法人 Python エンジニア育成推進協会」から提供されている「Python 3 エンジニア認定基礎試験」「Python 3 エンジニア認定データ分析試験」も過去に受験して合格している.詳しくは以下の記事を読んでもらえればと!

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com