it-swarm.com.de

Möglichkeit, mehrzeilige Kommentare in Python zu erstellen?

Ich habe vor kurzem angefangen, Python zu studieren, konnte aber keine mehrzeiligen Kommentare implementieren. Die meisten Sprachen haben Blockkommentarsymbole wie 

/* 

*/

Ich habe dies in Python ausprobiert, aber es wird ein Fehler ausgegeben, daher ist dies wahrscheinlich nicht der richtige Weg. Hat Python tatsächlich eine mehrzeilige Kommentarfunktion?

934
Dungeon Hunter

Sie können Strings mit drei Anführungszeichen verwenden. Wenn es sich nicht um einen Dokumentstring (erstes in einer Klasse/Funktion/Modul) handelt, werden sie ignoriert. 

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

(Stellen Sie sicher, dass Sie den führenden ''' entsprechend einrücken, um eine IndentationError zu vermeiden.)

Guido van Rossum (Schöpfer von Python) hat dies getwittert als "Pro-Tipp".

Der Python-Styleguide PEP8, bevorzugt mit aufeinander folgenden einzeiligen Kommentaren , und dies ist auch in vielen Projekten zu finden. Editoren haben in der Regel eine Verknüpfung, um dies einfach zu tun.

1489
Petr Viktorin

Python hat eine mehrzeilige Zeichenfolge/Kommentarsyntax in dem Sinne, dass mehrzeilige Zeichenfolgen keinen Bytecode - erzeugen, wenn er nicht als Docstrings verwendet wird, wie #- vorangestellte Kommentare. In der Tat verhält es sich genau wie ein Kommentar. 

Wenn Sie dagegen sagen, dass dieses Verhalten in den offiziellendocs dokumentiert werden muss, damit es sich um eine echte Kommentarsyntax handelt, können Sie sagen, dass es nicht als Als Teil der Sprachspezifikation garantiert ist.

In jedem Fall sollte Ihr Editor auch in der Lage sein, eine ausgewählte -Region leicht auskommentieren zu können (indem Sie vor jeder Zeile einen # setzen). Wenn nicht, wechseln Sie zu __. einem Editor, der dies tut.

Die Programmierung in Python ohne bestimmte Textbearbeitungsfunktionen kann eine schmerzhafte Erfahrung sein. Das Finden des richtigen Editors (und das Wissen, wie er verwendet wird) kann einen großen Unterschied in der Wahrnehmung der Python-Programmiererfahrung bewirken.

Der Editor sollte nicht nur ausgewählte Regionen auskommentieren können, er sollte auch in der Lage sein, Codeblöcke leicht nach links und rechts zu verschieben, und er sollte den Cursor automatisch auf die aktuelle Einrückungsebene setzen Drücken Sie Enter. Code-Faltung kann auch nützlich sein.


Zum Schutz vor Link-Zerfall ist hier der Inhalt von Guido van Rossums Tweet :

@BSUCSClub Python-Tipp: Sie können mehrzeilige Zeichenfolgen als mehrzeilige Kommentare verwenden. Wenn sie nicht als Docstrings verwendet werden, generieren sie keinen Code! :-)

68
unutbu

In Python 2.7 lautet der mehrzeilige Kommentar:

"""
This is a
multilline comment
"""

Wenn Sie sich in einer Klasse befinden, sollten Sie sie richtig markieren.

Zum Beispiel:

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

Ich hoffe, es hilft!

31

Aus der akzeptierten Antwort ...

Sie können Strings mit drei Anführungszeichen verwenden. Wenn es sich nicht um einen Dokumentstring (erstes in einer Klasse/Funktion/Modul) handelt, werden sie ignoriert.

Das stimmt einfach nicht. Im Gegensatz zu Kommentaren werden Zeichenfolgen mit drei Anführungszeichen immer noch analysiert und müssen syntaktisch gültig sein.

Wenn Sie versuchen, diesen Code auszuführen ...

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

Sie bekommen entweder ...

ValueError: invalid \x escape

... auf Python 2.x oder ...

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

... auf Python 3.x.

Die einzige Möglichkeit, mehrzeilige Kommentare zu erstellen, die vom Parser ignoriert werden, ist ...

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

AFAIK, Python hat keine Blockkommentare. Zum Kommentieren einzelner Zeilen können Sie das Zeichen # verwenden.

Wenn Sie Notepad ++ , verwenden, gibt es eine Verknüpfung zum Blockkommentieren . Ich bin sicher, dass andere wie gVim und Emacs ähnliche Funktionen haben.

23

Ich denke nicht, außer dass eine mehrzeilige Zeichenfolge nicht verarbeitet wird. Die meisten, wenn nicht alle Python-IDEs haben jedoch eine Kurzwahltaste, um mehrere Codezeilen auszukommentieren.

10
Anti Earth

Wenn Sie einen Kommentar einfügen 

"""
long comment here
"""

in der Mitte eines Skripts erkennen Python/Linters das nicht wieder. Das Falten wird durcheinander gebracht, da der obige Kommentar nicht Teil der Standardempfehlungen ist. Es ist besser zu benutzen 

# long comment
# here.

Wenn Sie vim verwenden, können Sie Plugins wie https://github.com/tpope/vim-commentary verwenden, um lange Kommentarzeilen durch Drücken von Vjgcc automatisch auszukommentieren. Dabei Vj wählt zwei Codezeilen aus und gcc kommentiert sie aus. 

Wenn Sie keine Plugins wie oben verwenden möchten, können Sie Suchen und Ersetzen wie verwenden

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

Dadurch wird das erste Zeichen in der aktuellen und der nächsten Zeile durch # ersetzt. 

5
alpha_989

Zu Python 2.7.13:

Single:

"A sample single line comment "

Multiline:

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

Leider kann die Stringifizierung nicht immer als auskommentiert werden! Daher ist es sicherer, sich an den Standard zu halten, der jede Zeile mit einem # voranstellt.

Hier ist ein Beispiel:

test1 = [1, 2, 3, 4,] # test1 enthält 4 ganze Zahlen

test2 = [1, 2, '' '3, 4,' ''] # test2 enthält 2 ganze Zahlen und die Zeichenfolge '3, 4,'

3
d.nedelchev

Nun, Sie können es versuchen (beim Ausführen des Zitats sollte die Eingabe der ersten Frage mit ' zitiert werden)

"""
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)

Was auch immer zwischen """ eingeschlossen ist, wird kommentiert.

Wenn Sie nach einzeiligen Kommentaren suchen, ist es #.

3
Kaushik Holla

Wie kommentiere ich: 

'''
   Comment what you want here
'''

oder

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

Der mehrzeilige Kommentar enthält keine solche Funktion. # ist die einzige Möglichkeit, eine einzelne Codezeile zu kommentieren . Viele von Ihnen antworteten auf einen Kommentar als Lösung. Es scheint zwar zu funktionieren, aber intern '' 'nimmt in Python die Zeilen als reguläre Zeichenfolgen an, die der Interpreter nicht wie Kommentar mit # ignoriert.

Offizielle Dokumentation hier prüfen

2
RATAN KUMAR

Ja, es ist in Ordnung, beide zu verwenden

'''
Comments
'''

und

""" 
Comments
"""

Das Einzige, woran Sie sich beim Ausführen einer IDE erinnern müssen, ist jedoch, dass Sie die gesamte Datei 'RUN' (Ausführen), damit sie als Code für mehrere Zeilen akzeptiert wird. Zeile für Zeile 'RUN' funktioniert nicht richtig und zeigt einen Fehler an.

0
Rajkamal Mishra

'' 'Mehrzeilige Kommentare wurden HIER gestartet

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()

'' 'Mehrzeiliger Kommentar endet HIER ... bedeutet, der obige Code wird nicht ausgeführt und ist ein Kommentar

0
Sham Pat

Wählen Sie die Zeilen aus, die Sie kommentieren möchten, und verwenden Sie dann "STRG +?". um den Python-Code im sublime Editor zu kommentieren oder zu kommentieren. Für eine Zeile können Sie 'shift + #' verwenden.

0
Tarjeet Singh

Die Inline-Kommentare in Python beginnen mit einem Hash-Hash-Zeichen.

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

Hallo!

Beachten Sie, dass ein Hash-Zeichen in einem String-Literal nur ein Hash-Zeichen ist.

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

Wählen Sie # 100, um einen Notruf zu tätigen.

Ein Hash-Zeichen kann auch für ein- oder mehrzeilige Kommentare verwendet werden.

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

Hallo

Welt

Fügen Sie den Text in dreifache Anführungszeichen ein, um Docstring zu unterstützen.

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"))

Hallo John!

Fügen Sie den Text mit dreifachen einfachen Anführungszeichen für Blockkommentare ein.

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

Zum Auskommentieren mehrerer Codezeilen in Python wird einfach ein # einzeiliger Kommentar in jeder Zeile verwendet:

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

Um "richtige" mehrzeilige Kommentare in Python zu schreiben, müssen mehrzeilige Zeichenfolgen mit der """ -Syntax Python verwendet werden. Es bietet Programmierern eine einfache Möglichkeit, mit jedem Python Modul, jeder Funktion, Klasse und Methode schnelle Notizen hinzuzufügen.

'''
This is
multiline
comment
'''

Erwähnen Sie auch, dass Sie mit einem Klassenobjekt wie diesem auf docstring zugreifen können

myobj.__doc__
0
shafik

VS Code universelle offizielle mehrzeilige Kommentarumschaltung.

macOS: Dann Code-Block auswählen +/

Windows: Wählen Sie dann Code-Block Ctrl+/

0
tymac

Verwenden von PyCharm IDE.

Sie können comment und uncomment Codezeilen mit Strg + /. Strg + / Kommentaren oder Kommentieren der aktuellen Zeile oder mehrerer ausgewählter Zeilen mit einzeiligen Kommentaren aufheben. ({# in Django templates, or # in Python scripts). Pressing Ctrl+Shift+/ für einen ausgewählten Quellcode-Block in einer Django-Vorlage umgibt den Block mit {% comment %} and {% endcomment %} -Tags.


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

print("Loop ended.")

Wählen Sie alle Zeilen aus und drücken Sie Ctrl + /


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

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

Ein mehrzeiliger Kommentar existiert in Python eigentlich nicht. Das folgende Beispiel besteht aus einer nicht zugewiesenen Zeichenfolge, die von Python auf syntaktische Fehler überprüft wird. Nur wenige Texteditoren wie NotePad++ bieten Verknüpfungen, um einen geschriebenen Code oder Wörter zu kommentieren

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

Ebenfalls, CTRL + K Eine Verknüpfung in Notepad++ zum Blockieren von Kommentaren. Vor jeder Zeile unter der Auswahl wird ein # eingefügt. CTRL + SHIFTK ist für unkommentierte Blöcke.

0
YouKnowWhoIAm

Mehrzeiliger Kommentar in Python: Bei mir funktionierten sowohl '' 'als auch' ''

Ex:

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

Ex:

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