( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

Pythonでコメントアウトを使うべき3つの理由とは?

Pythonのコメントアウトとは何か?

Pythonではコメントアウトという機能を使うことができます

そもそもコメントアウトの定義をご存知でしょうか?

コメントアウト -comment out

コンピューターのプログラムにおいて、特殊な記号を用いてソースコードを無効にすること。

バグの修正や説明文の付与に利用される。

weblio辞書

機能しては「ソースコードの無効化」となります

つまり実行してもコメントアウトした行は実行されなくなります

コードを削除すればよいのでは?

もちろんコード自体を削除してしまえば、実行はされなくなります

しかしもう一度そのコードを使いたい場合や、バグを発見するためだけの場合は

コメントアウトが非常に便利です

コメントアウトの使い方

コメントアウトを使うには#シャープを使う方法と、”’シングルクオーテーションまたは“””ダブルクオテーションを3つつなげる方法があります

下記の例では#シャープが付いているため、head()は実行されません

# df.head()

また下記では最初と最後の行のみ実行され、dropna()fillna()は実行されません

df = pd.read_excel('サンプル.xlsx')
'''
df['A'] = df['A'].dropna()
df['B'] = df['B'].fillna(0)
'''
df.head()

記号を使い分けるポイントは「複数の行」をコメントアウトするかどうかです

  • #シャープは1つの行だけソースコードを無効化
  • ”’シングルクオーテーションまたは“””ダブルクオテーションは複数行のソースコードを無効化

コメントアウトを使うべき3つの理由

ソースコードが実行されないようにするコメントアウトの機能ですが、

コードメンテナンス」と「可読性の向上」に役立ちます

コメントアウトを使うべき場面について3つに絞ってご説明します

①今後使うかもしれないコードを残すため

Pythonではコードを上から順に書いていきますが、書いているうちにどんどん複雑化していきます

そして一度は書いたけど、使わなくなるコードも出てきます

下記の例ではfillna()を書いてみたものの、使わないためコメントアウトしています

df = pd.read_excel('サンプル.xlsx')
# df = df.fillna(0)
df = df.dropna()
df = df.sort_values('A')
df.head()

もちろんコードを消しても良いですが、記述中にもう一度使う可能性もあります

工数削減のため完全に削除ではなく、コメントアウトでコードを無効化しましょう

②エラーを発見するため

#シャープを記述すると、それ以降のコードを無効化できます

この機能を利用してコード記述中にエラーが出てしまったとき

どの行」の「どのコード」が悪さをしているかを発見するためにコメントアウトを利用します

# エラーが出る
df.pivot_table(index='A').sort_values('B').plt()

上記のエラーが出てしまっているコードに対して、メソッドの前で#コメントアウトを使い、どこのコードでエラーが発生しているか確認していきます

# 【1】dfだけ実行 → OK
df#.pivot_table(index='A').sort_values('B').plt()
# 【2】pivot_tableまで実行 → OK
df.pivot_table(index='A')#.sort_values('B').plt()
# 【3】sort_valuesまで実行 → OK
df.pivot_table(index='A').sort_values('B')#.plt()
# 【4】エラー発見! pltからplotに変更 → OK
df.pivot_table(index='A').sort_values('B').plot()

プログラミングを書くすべての人にとって「エラーとの闘い」は必ず経験します

そして初心者の多くが躓くポイントでもあります

どこでエラーが出ているのかを明確化することで、その対策を立てることができるため

コメントアウトを利用して「エラー」をあぶりだしてください

③「どういった処理をしているか」を明示するため

最後に「コードの可読性」の観点からコメントアウトを使う理由について説明します

Pythonに限らずプログラミング言語には可読性というものがあり、そのプログラムが「どういった処理をしているか?」を明確化することが求められます

可読性を高める必要がある大きな理由は、複数人でプログラムを回す機会が多いためです

「なぜその処理をしているのか」を言葉で捕捉することで、自分以外の誰かがコードを理解するのを助けることができます

まずは「コメントアウトなし」のコードを見てみましょう

kw_list = ['ビットコイン']
pytrends.build_payload(kw_list=kw_list,geo='JP')
df = pytrends.interest_over_time().drop('isPartial',axis=1)
df.plot(color='red',title='「ビットコイン」の検索数推移')
Google Trendを使ったビットコイン検索の推移のグラフ

Google TrendsからAPIを利用して「ビットコイン」検索のデータを取得して、折れ線グラフで可視化する

続いて「コメントアウトあり」のコードです

# 「ビットコイン」というキーワードを定義
kw_list = ['ビットコイン']

# Google Trendsへキーワードと地域を指定して接続
pytrends.build_payload(kw_list=kw_list,geo='JP')

# 検索数の推移情報を取得し、不要なカラムを削除
df = pytrends.interest_over_time().drop('isPartial',axis=1)

# 線グラフでグラフを作成。色は赤でタイトルを追記
df.plot(color='red',title='「ビットコイン」の検索数推移')

行数は増えてしまいますが、各コードがどういった処理を行っているか簡単に理解することができます

エラーやバグの原因を発見するのにも役立ちます

コードを実行するのは機械」ですが、「コードを記述するのは人間」であるため

人間が見やすいコードであることが非常に重要になってきます

まとめ

コメントアウトとは一部のソースコードを無効化すること

#シャープを使う方法と、”’シングルクオーテーションまたは“””ダブルクオテーションを3つつなげる方法があります

そして「コードメンテナンス」と「可読性の向上」に役立つことをご紹介してきました

3種類の利用シーンを理解し、Pythonを記述してください

お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。