はじめに
Pythonはそのシンプルさと可読性の高さで知られるプログラミング言語です。しかし、その可読性を最大限に引き出すためには、コードスタイルガイドラインであるPEP8(Python Enhancement Proposal 8)を遵守することが重要です。PEP8は、Pythonコードの一貫性と可読性を向上させるためのベストプラクティスを提供します。
この記事では、PEP8に準拠したコーディングスタイルと、そうでないスタイルを比較するための10問のクイズを紹介します。このクイズを通じて、PEP8の基本的なルールを学び、実践的な知識を深めることができます。初心者から経験者まで、すべてのPythonプログラマーに役立つ内容となっているので、ぜひ挑戦してみてください。
PEP8スタイルガイドラインを習得するためのクイズ10問
問題1
# コードA
def add(a, b):
return a+b
# コードB
def add(a, b):
return a + b
解答: コードB
解説:
PEP8では、演算子の前後にはスペースを入れることを推奨しています。したがって、return a + b
が正しいスタイルです。
問題2
# コードA
for i in range(10):
print(i)
# コードB
for i in range(10):
print(i)
解答: コードA
解説:
PEP8では、インデントにはスペース4つを使用することを推奨しています。コードBはインデントが不適切です。
問題3
# コードA
class MyClass:
def __init__(self, value):
self.value=value
# コードB
class MyClass:
def __init__(self, value):
self.value = value
解答: コードB
解説:
PEP8では、代入演算子の前後にはスペースを入れることを推奨しています。したがって、self.value = value
が正しいスタイルです。
問題4
# コードA
def func(x,y):
return x * y
# コードB
def func(x, y):
return x * y
解答: コードB
解説:
PEP8では、引数リストの各引数の間にスペースを入れることを推奨しています。したがって、def func(x, y):
が正しいスタイルです。
問題5
# コードA
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# コードB
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
解答: コードA
解説:
PEP8では、継続行のインデントには追加のレベル(通常は4つのスペース)を入れることを推奨しています。したがって、var_one, var_two, var_three, var_four
の行は追加のインデントが必要です。
問題6
# コードA
x = { 'a':37,'b':42,
'c':927}
# コードB
x = {'a': 37, 'b': 42, 'c': 927}
解答: コードB
解説:
PEP8では、辞書のエントリの間にはスペースを入れることを推奨しています。また、複数行にわたる辞書のエントリは適切にインデントする必要があります。したがって、コードBが正しいスタイルです。
問題7
# コードA
if x>5:
print("x is greater than 5")
# コードB
if x > 5:
print("x is greater than 5")
解答: コードB
解説:
PEP8では、比較演算子の前後にはスペースを入れることを推奨しています。したがって、if x > 5:
が正しいスタイルです。
問題8
# コードA
def foo():
return (0,1,2,3)
# コードB
def foo():
return (0, 1, 2, 3)
解答: コードB
解説:
PEP8では、リストやタプルの要素の間にはスペースを入れることを推奨しています。したがって、return (0, 1, 2, 3)
が正しいスタイルです。
問題9
# コードA
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# コードB
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ]
解答: コードA
解説:
PEP8では、リストの最後の要素の後には余分なカンマを入れないことを推奨しています。したがって、my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
が正しいスタイルです。
問題10
# コードA
import os, sys
# コードB
import os
import sys
解答: コードB
解説:
PEP8では、標準ライブラリの各インポートは個別の行に書くことを推奨しています。したがって、import os
とimport sys
を個別の行に書くコードBが正しいスタイルです。
参考文献