Pythonで複数行をコメントアウトする方法|サンプルコードで分かりやすく解説!
- システム
エンジニア - Pythonで複数行にコメントを付ける方法について教えていただけますか。
- プロジェクト
マネージャー - 複数行にコメントを付けるのはプログラムのテストやソースコードの注釈を書く際に必要となります。それでは、複数行にコメントを付ける方法についてご紹介しましょう。
コメントアウトについて
プログラム内のソースコードを特殊な記号で囲み、処理が実行されないように無効化することを「コメントアウト」と言います。コメントアウトされたソースコードは、「コメント」になります。
コメントアウトは、プログラムをテストする場合や注釈を書き込む際に使用します。
Pythonで一行コメントアウトする場合は「#(シャープ)」を使いますが、複数行をコメントアウトする場合はどう記述するのでしょうか。
この記事では、Pythonのコードを複数行コメントアウトする方法についてご紹介しますので、興味のある方はぜひご覧ください。
Pythonで複数行をコメントアウトする方法
Pythonではソースコードの先頭に「#(シャープ)」をつけることで、1行分コメントアウトすることができます。しかし複数行をコメントする場合、全ての行に「#(シャープ)」を1つ1つ入力することは効率的ではありません。
そこでPythonでは、プログラムや関数などの説明をするドキュメンテーション文字列 (documentation string、またはdocstring)を記入する方法によってコメントアウトを行います。
具体的には、対象のソースコードをトリプルクォート(三重引用符)、すなわち「”””(ダブルクォーテーション3つ)」または「”’(シングルクォーテーション3つ)」で囲むことでコメントアウトすることができます。
それでは、実際のコードを確認してみましょう。(実行環境:Jupyter Notebook 6.2.0、以降同じ環境で実行)
1
2
3
4
5
6
|
print("Good Morning!")
"""
この行はコメントアウトされます。
処理が実行されません。
"""
print("Hello!")
|
実行結果は以下の通りになります。コメントアウトした箇所は無視され、コメントアウト部分の上下にあるソースコードだけが実行されました。
1
2
|
Good Morning!
Hello!<code>
|
コメントアウトに関する注意点
ここでは複数行のコメントアウトや、コメントアウトに使うトリプルクォート(三重引用符)についての注意点を紹介します。
インデントに注意
Pythonの複数行コメントは便利ですが、インデント(段落の位置)がずれているとエラーが発生します。
実際のコードで、エラーについて確認しましょう。
1
2
3
4
5
6
7
|
def hello():
"""
このコメントはエラーになります
"""
print("Hello!")
hello()
|
実行結果は、以下の通りになります。
1
2
3
4
|
File "<ipython-input-14-10ed3e8b3715>", line 2
"""
^
IndentationError: expected an indented block
|
エラーが「”””(ダブルクォーテーション3つ)」の部分で発生しています。
「IndentationError」とは、インデントの位置が間違っている場合に発生する構文エラーです。また「expected an indented block」とは日本語に訳すと「予定されるインデント」という意味であり、全体を通すと「予定されるインデントの位置が正しくない」という意味になります。
それでは、「”””(ダブルクォーテーション3つ)」を正しいインデント位置に直してみます。
1
2
3
4
5
6
7
|
def hello():
"""
インデントの位置を修正しました
"""
print("Hello!")
hello()
|
実行結果は、次のようになります。
1
|
Hello!
|
エラーが発生せず、プログラムが実行されました。
複数行をコメントアウトする際は、インデントに気をつけて行いましょう。
インライン(行内)では使用不可
複数行のコメントアウトに使用するトリプルクォート(三重引用符)ですが、この方法をインライン(行内)で実行した場合文法エラーになるので注意が必要です。
実際のコードで確認してみましょう。
1
2
3
4
5
|
def hello():
print("Hello!") """Hello!と出力します"""
hello()
|
実行結果は次のようになります。
1
2
3
4
|
File "<ipython-input-26-1b08f4515481>", line 3
print("Hello!") """Hello!と出力します"""
^
SyntaxError: invalid syntax
|
SyntaxError(文法エラー)が発生してしまいました。トリプルクォート(三重引用符)は、インライン(行内)で使用しないようにしましょう。
複数行コメントアウトのショートカット
Pythonで複数行をコメントアウトする場合に、ショートカットを使用する方法があります。ショートカットを使うことで、直接入力の手間を省くことができます。
Visual Studio Codeのショートカット
Visual Studio Codeの場合、コメントアウトする箇所を選択し、
[Shift]+[Alt]+[A]キー(Windows/Linux)または
[Ctrl]+[/]キー(Windows/Linux)
の操作をすることでコメントアウトが可能です。
それでは、それぞれのコメントアウトの違いについて確認します。
[Shift]+[Alt]+[A]キーで複数行コメントアウトした場合のコードを見てみましょう。
1
2
3
4
5
|
''' def hello():
print("Hello!")
hello() '''
|
コード全体を選択し、[Shift]+[Alt]+[A]キーを入力しました。この場合は、選択した箇所が「'''(シングルクォーテーション3つ)」で囲まれているのがわかります。
次に、[Ctrl]+[/]キーで複数行コメントアウトした場合のコードを見てみましょう。
1
2
3
4
5
|
# def hello():
# print("Hello!")
# hello()
|
コード全体を選択し、[Ctrl]+[/]キーを入力しました。この場合は、選択した行の先頭それぞれに「#(シャープ)」が付いているのがわかります。
それぞれのショートカットを、コメントアウトする場合の状況に応じて使い分けてみてください。
Jupyter Notebookのショートカット
Jupyter Notebookの場合、「Ctrl」+「/」キーで複数行をコメントアウトできます。
全ての行を選択した後、「Ctrl」+「/」キーでコメントアウトしたコードを見てみましょう。
1
2
3
4
5
6
7
|
# def hello():
# print("Hello!")
# hello()
|
Jupyter Notebookの場合、「#(シャープ)」のみを使用するショートカットが行えます。また、トリプルクォート(三重引用符)を使用するショートカットはありません。
PyCharmのショートカット
PyCharmの場合、「Shift」+「/」キーで複数行をコメントアウトできます。
全ての行を選択した後、「Shift」+「/」キーでコメントアウトしたコードを見てみましょう。
1
2
3
4
5
|
# def hello():
#
# print("Hello!")
#
# hello()
|
処理の書かれているコードだけでなく、空行もコメントアウトされる点が特徴的です。
PyCharmではコメントアウトする箇所を選択し、メインメニュー→Code→「Comment with Line Comment(行コメント)」を選択することでコメントアウトすることもできます。
また、メインメニュー→Code内には「Comment with block Comment(ブロックコメント付きのコメント)」という機能があります。しかし使用するプログラミング言語でPythonを選択している場合、この機能は使えません。
メモ帳ではショートカット不可
残念ながら、Windowsの標準テキストエディタであるメモ帳では複数行をコメントアウトできません。
メモ帳でPythonを複数行コメントアウトする場合には、直接トリプルクォート(三重引用符)や「#(シャープ)」を入力する必要があります。
システム
エンジニアコメントアウトするにはインデントやインラインに注意が必要ですね。
プロジェクト
マネージャーその通りです。また、手間を省くためにもショートカットを覚えておくといいですよ。
まとめ
この記事では、
・Pythonで複数行をコメントアウトする方法
・コメントアウトの注意点
・Pythonで複数行をコメントアウトする時に使えるショートカットキー
を紹介しました。
プログラムをテストしたい時やコードの説明を書きたいという時に、複数行をコメントアウトする方法が役に立ちます。
ぜひ、今回学んだ複数行のコメントアウト方法をシステム開発に役立ててください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Python新着案件New Job
-
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円
東京都豊島区(池袋駅)
-
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円
東京都豊島区(池袋駅)
-
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円
東京都都内(-駅)
-
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円
東京都都内(-駅)
-
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円
東京都都内(-駅)
-
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円
東京都都内(-駅)