web-dev-qa-db-ja.com

Pythonで複数行のコメントを作成する方法は?

最近 Python の勉強を始めましたが、複数行コメントを実装する方法が見つかりませんでした。ほとんどの言語には、次のようなブロックコメント記号があります。

/* 

*/

私はPythonでこれを試しましたが、それはエラーを投げるので、これはおそらく正しい方法ではありません。 Pythonには実際に複数行のコメント機能がありますか?

975
Dungeon Hunter

三重引用符で囲まれた文字列を使用できます。それらがdocstringではない場合(クラス/関数/モジュールの最初のもの)、それらは無視されます。 

'''
This is a multiline
comment.
'''

IndentationErrorを避けるために、先頭の'''を適切にインデントするようにしてください。)

Guido van Rossum(Pythonの作成者)は これをツイートしました 「プロの助言」として。

しかし、Pythonのスタイルガイド、PEP8、 は連続した単一行コメントの使用を優先しています 、これは多くのプロジェクトで見られるものです。編集者は通常これを容易にするための近道を持っています。

1489
Petr Viktorin

Pythonには 複数行文字列/コメント構文 があります。つまり、docstringsとして使用しない限り、 複数行文字列はバイトコードを生成しません -#で始まるコメントのように。実際には、コメントのように機能します。

一方、この動作を正式なドキュメントに文書化して真のコメント構文にする必要があると言う場合、そうです、言語仕様の一部として保証されていないことは言うまでもありません。

いずれの場合でも、エディターは選択した領域を簡単にコメントアウトできるはずです(各行の前に#を個別に配置することにより)。そうでない場合は、対応するエディターに切り替えます。

特定のテキスト編集機能を使用しないPythonでのプログラミングは、苦痛を伴う経験になる可能性があります。適切なエディターを見つける(およびその使用方法を知る)ことで、Pythonプログラミングエクスペリエンスの認識方法に大きな違いをもたらすことができます。

エディターは選択された領域をコメントアウトできるだけでなく、コードのブロックを簡単に左右にシフトでき、Enterキーを押すとカーソルを現在のインデントレベルに自動的に配置する必要があります。コードの折りたたみも便利です。


リンクの劣化を防ぐために、ここに Guido van Rossumのツイート の内容を示します。

@ BSUCSClub Python tip:複数行のコメントとして複数行の文字列を使用できます。 docstringとして使用しない限り、コードは生成されません! :-)

76
unutbu

Python 2.7では、複数行コメントは次のとおりです。

"""
This is a
multilline comment
"""

あなたがクラスの中にいる場合は、正しくタブ付けする必要があります。

例えば:

class weather2():
   """
   def getStatus_code(self, url):
       world.url = url
       result = requests.get(url)
       return result.status_code
   """

私はそれが役立つことを願っています!

31

受け入れられた答えから...

三重引用符で囲まれた文字列を使用できます。それらがdocstringではない場合(クラス/関数/モジュールの最初のもの)、それらは無視されます。

これは事実ではありません。コメントとは異なり、三重引用符で囲まれた文字列は解析されているので、ソースコードのどこに表示されているかにかかわらず、構文的に有効である必要があります。

このコードを実行しようとすると...

def parse_token(token):
    """
    This function parses a token.
    TODO: write a decent docstring :-)
    """

    if token == '\\and':
        do_something()

    Elif token == '\\or':
        do_something_else()

    Elif token == '\\xor':
        '''
        Note that we still need to provide support for the deprecated
        token \xor. Hopefully we can drop support in libfoo 2.0.
        '''
        do_a_different_thing()

    else:
        raise ValueError

あなたはどちらかを得るでしょう...

ValueError: invalid \x escape

... Python 2.xの場合、または...

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape

... Python 3.xでは。

パーサーによって無視される複数行コメントをする唯一の方法は...

Elif token == '\\xor':
    # Note that we still need to provide support for the deprecated
    # token \xor. Hopefully we can drop support in libfoo 2.0.
    do_a_different_thing()
30
Aya

私の知る限り、Pythonにはブロックコメントはありません。個々の行をコメントするには、#文字を使用できます。

Notepad ++を使用している場合は、ブロックコメントのショートカットがありますgVimEmacs のような他の人も似たような機能を持っていると思います。

23

複数行の文字列が処理されないことを除いて、それはしないと思います。ただし、すべてではないにしてもほとんどのPython IDEには、複数行のコードを「コメントアウト」するためのショートカットがあります。

10
Anti Earth

にコメントを入れたら 

"""
long comment here
"""

スクリプトの途中で、python/lintersはそれを認識しません。上記のコメントは標準的な推奨事項の一部ではないため、折りたたみは混乱します。それを使うのが良い 

# long comment
# here.

vimを使用する場合は、 https://github.com/tpope/vim-commentary のようなプラグインを使用して、Vjgccを押すと自動的に長いコメント行をコメントアウトできます。 Vjは2行のコードを選択し、gccはそれらをコメントアウトします。 

上記のようなプラグインを使用したくない場合は、検索と置換を使用できます。

:.,.+1s/^/# /g。 

これは現在と次の行の最初の文字を#に置き換えます。 

5
alpha_989

Python 2.7.13の場合:

シングル:

"A sample single line comment "

複数行

"""
A sample
multiline comment
on PyCharm
"""
3
A.G

残念ながら文字列化 いつもではない はコメントアウトとして使用できます。そのため、各行の先頭に#を付けて標準に固定するほうが安全です。

これが一例です。

test1 = [1、2、3、4、]#test1は4つの整数を含みます

test2 = [1、2、 '' '3、4、' '']#test2は2つの整数 と文字列 '3、4、'を含みます。

3
d.nedelchev

さて、あなたはこれを試すことができます(引用を実行するとき、最初の質問への入力は'で引用されるべきです)

"""
print("What's your name? ")
myName = input()
print("It's Nice to meet you " + myName)
print("Number of characters is ")
print(len(myName))
age = input("What's your age? ")
print("You will be " + str(int(age)+1) + " next year.")

"""
a = input()
print(a)
print(a*5)

"""で囲まれたものは何でもコメントになります。

単一行コメントを探しているなら、それは#です。

3
Kaushik Holla

コメントする方法: 

'''
   Comment what you want here
'''

または

 """
    Comment what you want here
 """
3
Ananda

このような複数行コメントの機能はありません。 1行のコードにコメントを書くには#が唯一の方法ですあなたの多くはその解決策として '' 'コメント' ''と答えました。それは動作するように見えますが、内部的にはPythonでは '' 'で囲まれた行を通常の文字列として解釈しますが、インタプリタは#のようなコメントを無視しません。

公式文書はこちら

2
RATAN KUMAR

はい、両方を使用しても構いません

'''
Comments
'''

そして

""" 
Comments
"""

ただし、IDEで実行中に覚えておく必要があるのは、ファイル全体を「実行」して複数行コードとして受け入れる必要があることだけです。行ごとの「RUN」は正しく機能せず、エラーが表示されます。

0
Rajkamal Mishra

マルチラインコメントはここから始まりました

import tkinter as tk
root = tk.Tk()
w = tk.Label( text="Hello Tkinter")

logo = tk.PhotoImage(file="Python.PNG")

w1 = tk.Label(root, image=logo).pack(side="right")
explanation = """At Present, only GIF and PPM/PGM are supported but am
trying it with PNG. Interface does exit to allow image file to be added easily."""

w2 = tk.Label(root, justify=tk.LEFT,padx = 0, text=explanation).pack(side="left")
root.mainloop()

'' '複数行コメントはここで終わります。上記のコードは実行されず、コメントです

0
Sham Pat

コメントを付ける行を選択してから、[CTRL +]を使用します。崇高なエディタでpythonコードをコメントまたはコメント解除する。 単一行の場合は 'shift +#'を使用できます。

0
Tarjeet Singh

Pythonのインラインコメントはハッシュハッシュ文字で始まります。

hello = "Hello!" # this is inline comment
print(hello)

こんにちは!

文字列リテラル内のハッシュ文字は単なるハッシュ文字であることに注意してください。

dial = "Dial #100 to make an emergency call."
print(dial)

#100をダイヤルして緊急電話をかけます。

ハッシュ文字は単一行または複数行のコメントにも使用できます。

hello = "Hello"
world = "World"
# first print hello
# and print world
print(hello)
print(world)

こんにちは

世界

Docstringをサポートするには、テキストを三重二重引用符で囲みます。

def say_hello(name):
    """
    This is docstring comment and
    it's support multi line.
    :param name it's your name
    :type name str
    """
    return "Hello " + name + '!'


print(say_hello("John"))

こんにちはジョンさん!

ブロックコメントは、テキストを三重一重引用符で囲みます。

'''
I don't care the params and
docstrings here.
'''
0
Madan Sapkota

Pythonで複数行のコードをコメントアウトするには、すべての行で#単一行コメントを使用するだけです。

# This is comment 1
# This is comment 2 
# This is comment 3

Pythonで「適切な」複数行コメントを作成するには、"""構文で複数行文字列を使用しますPythonには、ドキュメント文字列(またはdocstrings)機能があります。プログラマーは、すべてのPythonモジュール、関数、クラス、およびメソッドに簡単なメモを簡単に追加できます。

'''
This is
multiline
comment
'''

また、次のようなクラスオブジェクトを使用してdocstringにアクセスできることにも言及してください。

myobj.__doc__
0
shafik

VS Codeユニバーサル公式の複数行コメント切り替え。

macOS:コードブロックを選択してから +/

Windows:次にコードブロックを選択します Ctrl+/

0
tymac

PyCharm IDEを使う.

commentおよびuncommentの行を使用して、Ctrl + /。Ctrl + /コメントを付けたり、現在の行または単一行コメントを含む複数行をコメント解除したりできます - ({# in Django templates, or # in Python scripts) Djangoテンプレート内の選択されたソースコードブロックのPressing Ctrl+Shift+/は、ブロックを{% comment %} and {% endcomment %}タグで囲みます。


n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)

print("Loop ended.")

すべての行を選択してからを押すCtrl + /


# n = 5
# while n > 0:
#     n -= 1
#     if n == 2:
#         break
#     print(n)

# print("Loop ended.")
0
0m3r

複数行コメントは実際にはpythonには存在しません。以下の例は、割り当てられていない文字列で構成されています。これは、構文エラーに対してPythonによって検証されています。 NotePad++のようなテキストエディタは、書かれたコードや単語にコメントするためのショートカットを提供してくれます。

def foo():
    "This is a doc string."
    # A single line comment
    """
       This 
       is a multiline
       comment/String
    """
    """
    print "This is a sample foo function"
    print "This function has no arguments"
    """
    return True

また、 CTRL + K コメントをブロックするためのNotepad++内のショートカットは、選択の下の各行の前に#を追加します。 CTRL + SHIFTK ブロックコメント解除用です。

0
YouKnowWhoIAm

Pythonでの複数行コメント:私にとっては、 '' 'と "" "の両方が有効でした

例:

a = 10
b = 20
c = a+b
'''
print ('hello')
'''
print ('Addition is : ',a+b)

例:

a = 10
b = 20
c = a+b
"""
print ('hello')
"""
print ('Addition is : ',a+b)
0
Viraj.Hadoop