Pythonでプログラミングしている中で最近まできちんとわかってなかったことの1つにコメント化、コメントをつけるということがありました。
コメント化するには「#」をつけるということまではわかっていたのですが、それ以外のやり方や簡単にコメント化する方法などもっと早く知っておけばよかったという内容もあったのでここに一通り載せておきます。
目次
1.行の先頭に「#」をつける
以下の1行目のように文の先頭に「#」をつけるとその行のそれ以降はコメントとして扱われます。
2行目のprint文はそのまま実行されます。
#abcdefをプリントする。 print("abcdef")
2.行の途中に「#」をつける
行の途中に「#」をつけると、「#」以降がコメントとして扱われます。
「#」の前のコードは実行されます。
print("abcdef") #abcdefをプリントする。
3.シングルコーテーション3つまたはダブルコーテーション3つで囲む
これが一番わかりにくかったのですが、文字列はそれ以外の実行に影響しないということを利用したコメント化のやり方です。
この時に注意しなければいけないのがインデントです。
以前for文やif文に絡むような箇所で複数行コメント化しようとしてこれで囲んだことがあったのですが、はじめのうちは何回もエラーが発生しました。
具体例を挙げて見ていきます。
まずはじめに問題のない例ですが、以下のような例では、このようなシングルコーテーション3つによる囲みにて3,4行目がコメント化されるということで特に問題ありませんでした。特にインデントなどがされてないコードなのでこれはうまくいきました。
driver.get('https://www.yahoo.co.jp/') element = driver.find_element(By.NAME, "p") ''' element.send_keys("abc") element.send_keys(Keys.ENTER) '''
問題だったのは次のような場合でした。
for x in range(1, 5): if box != None: if value == "abc": s = "s1" elif value == "def": s = "s2"
elif value == "ghi": s = "s3"
ここでたとえば2つ目のelif関連をコメント化したいと思った時に、
以下のように直感的にこうかと思ってやったところエラーになりました。
for x in range(1, 5):
if box != None:
if value == "abc": s = "s1"
'''
elif value == "def": s = "s2"
'''
elif value == "ghi": s = "s3"
それではと思って以下のように変えてみましたがこれもだめでした。
for x in range(1, 5):
if box != None:
if value == "abc": s = "s1"
'''
elif value == "def": s = "s2"
'''
elif value == "ghi": s = "s3"
そうすると、先頭から囲めばいいのかと思って
for x in range(1, 5):
if box != None:
if value == "abc": s = "s1"
'''
elif value == "def": s = "s2"
'''
elif value == "ghi": s = "s3"
とやってみたのですがこれもだめでした。
最終的にうまくいったのはこれでした。
for x in range(1, 5):
if box != None:
if value == "abc": s = "s1"
'''
elif value == "def": s = "s2"
'''
elif value == "ghi": s = "s3"
「シングルコーテーション3つまたはダブルコーテーション3つによるコメント化の場合には、コーテーションをつけたコメントは直前の行のインデントにあわせる」ということになるようです。
終了側のシングルコーテーション3つはこの位置以外でも、もう半角4つ左の位置でもOKでした。
4.簡単なコメント化の方法
VisualStudioCodeやAtomのようなエディタやJupyterNotebookを使用しているような場合には、コメント化したい箇所を選択して「Ctrl+/」(コントロール+スラッシュ)でまとめてコメント化ができます。
この場合、すべての行に「#」がつきます。
逆に、すでにコメント化されている箇所を選択して「Ctrl+/」(コントロール+スラッシュ)をすると、コメント化の「#」がはずれて元に戻ります。
複数行コメント化する場合にはこれが可能ならこれが一番いいですかね。
以上がいろいろなコメント化の方法になります。
関連記事:
【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録
【Python】keyboardライブラリでのキー入力検出に使用可能なキーの種類 - Django Girls and Boys 備忘録
【Python Selenium】各ブラウザ用のドライバーを自動アップデートする方法 - Django Girls and Boys 備忘録
【Python Selenium】Pythonで行うproxy環境設定方法 - Django Girls and Boys 備忘録
【PythonからWeb操作】seleniumのインストール手順 - Django Girls and Boys 備忘録
【PythonによるExcelファイルの読み書き】PythonのダウンロードからExcelファイルの読み書きまでの一通りすべての方法 - Django Girls and Boys 備忘録
【Python Selenium】ActionChainsによるキーの同時押し、連続操作などの使用方法 - Django Girls and Boys 備忘録
【Python】「文字列として受け取ったリスト」をリストに復元した時の対処方法、変換方法 - Django Girls and Boys 備忘録
【Python】ソースコードにコメントをつける方法(コメント化) - Django Girls and Boys 備忘録
【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録
【Python Selenium】Webサイトのスクレイピングなどで必要なフレーム間移動方法 - Django Girls and Boys 備忘録
【Python Selenium】ブラウザ用ドライバーのダウンロードとインストール方法 - Django Girls and Boys 備忘録
【PythonからWeb操作】selenium、各ブラウザ用ドライバーの最新バージョン確認、ダウンロード場所 - Django Girls and Boys 備忘録
【Python Selenium】新規ウインドウ追加時のウインドウ切替方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウ表示時などでのWaitの方法、待機方法 - Django Girls and Boys 備忘録
【Python Selenium】新規ウインドウ(新規タブ)追加時のウインドウ切替方法(追加ハンドルをハンドル差異比較にて取得) - Django Girls and Boys 備忘録
【python】実行時に表示されるコンソールウインドウを非表示にする方法 - Django Girls and Boys 備忘録
【Python Selenium】Webサイトのソースコードをファイル保存する方法 - Django Girls and Boys 備忘録
【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理 - Django Girls and Boys 備忘録
【Python Excel】ExcelからのPython実行ファイル(アプリケーションファイル)起動方法 - Django Girls and Boys 備忘録
【Python】ログイン中のユーザ名を取得する方法 - Django Girls and Boys 備忘録
【Python Selenium】クローリング、スクレイピングにて対象ウインドウのソースコードを調べる方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウのURLを指定して画面展開する方法と現在表示されているウインドウのURLとタイトルを取得する方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウハンドル取得方法 - Django Girls and Boys 備忘録
【Python Selenium】ウインドウ内の要素取得、キーボード入力などする方法(name属性、id属性、class属性) - Django Girls and Boys 備忘録
【Python Selenium 要素取得】ウインドウハンドル取得方法(Chrome用) - Django Girls and Boys 備忘録
【Python Selenium】ウインドウ内の要素取得、キーボード入力などする方法(name属性、id属性、class属性)(Chrome用) - Django Girls and Boys 備忘録
【Python Selenium】f文字列(フォーマット文字列)、r文字列(raw文字列)について - Django Girls and Boys 備忘録
【Python】エスケープシーケンス(エスケープ文字)について - Django Girls and Boys 備忘録