web-dev-qa-db-fra.com

Manière de créer des commentaires multilignes en Python?

J'ai récemment commencé à étudier Python , mais je n'ai pas trouvé comment implémenter les commentaires multilignes. La plupart des langues ont des symboles de commentaires de bloc comme 

/* 

*/

J'ai essayé cela en Python, mais cela génère une erreur, ce n'est donc probablement pas la bonne façon. Python a-t-il réellement une fonction de commentaire multiligne?

934
Dungeon Hunter

Vous pouvez utiliser des chaînes triples. Quand ils ne sont pas une docstring (première chose dans une classe/fonction/module), ils sont ignorés. 

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

(Assurez-vous d'indenter le ''' principal de manière appropriée pour éviter une IndentationError.)

Guido van Rossum (créateur de Python) a tweeté ceci en tant que "conseil professionnel".

Cependant, le guide de style de Python, PEP8, préconise l’utilisation de commentaires consécutifs sur une seule ligne , et c’est également ce que vous trouverez dans de nombreux projets. Les rédacteurs ont généralement un raccourci pour le faire facilement.

1489
Petr Viktorin

Python a une syntaxe chaîne/commentaire multiligne dans le sens où, sauf si elle est utilisée comme docstrings, les chaînes multilignes ne génèrent pas de bytecode - exactement comme # - les commentaires ajoutés. En effet, il agit exactement comme un commentaire. 

D'autre part, si vous dites que ce comportement doit être documenté dans le document officieldocs pour qu'il s'agisse d'une syntaxe de commentaire vraie, alors oui, vous auriez raison de dire que ce n'est pas Garanti dans le cadre de la spécification de langue.

Dans tous les cas, votre éditeur devrait également être en mesure de commenter facilement une région Sélectionnée (en plaçant un # devant chaque ligne individuellement). Sinon, passez à l'éditeur an qui le fait.

Programmer en Python sans certaines fonctionnalités d’édition de texte peut être une expérience douloureuse Trouver le bon éditeur (et savoir l’utiliser) peut faire toute la différence dans la perception de l’expérience de programmation Python.

Non seulement l'éditeur devrait-il pouvoir commenter les régions sélectionnées, il devrait également pouvoir déplacer facilement des blocs de code vers la gauche et la droite, et devrait placer automatiquement le curseur au niveau d'indentation actuel lorsque vous appuyez sur Entrée. Le pliage de code peut également être utile.


Pour vous protéger contre la dégradation des liens, voici le contenu de Guido van Rossum's Tweet :

@BSUCSClub Conseil Python: vous pouvez utiliser des chaînes multilignes comme commentaires multi-lignes. Sauf s'ils sont utilisés comme docstrings, ils ne génèrent aucun code! :-)

68
unutbu

En Python 2.7, le commentaire multiligne est:

"""
This is a
multilline comment
"""

Si vous êtes dans une classe, vous devriez la tabuler correctement.

Par exemple:

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

J'espère que ça aide!

31
SomeAnonymousPerson

De la réponse acceptée ...

Vous pouvez utiliser des chaînes triples. Quand ils ne sont pas une docstring (première chose dans une classe/fonction/module), ils sont ignorés.

Ce n'est tout simplement pas vrai. Contrairement aux commentaires, les chaînes entre guillemets simples sont toujours analysées et doivent être syntaxiquement valables, quel que soit leur emplacement dans le code source.

Si vous essayez d'exécuter ce code ...

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

Vous aurez soit ...

ValueError: invalid \x escape

... sur Python 2.x ou ...

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

... sur Python 3.x.

La seule façon de faire des commentaires multi-lignes qui sont ignorés par l'analyseur est ...

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

Autant que je sache, Python n'a pas de commentaires de bloc. Pour commenter des lignes individuelles, vous pouvez utiliser le caractère #.

Si vous utilisez Notepad ++ , il existe un raccourci pour les commentaires de bloc . Je suis sûr que d'autres comme gVim et Emacs ont des fonctionnalités similaires.

23
Sanjay T. Sharma

Je pense que ce n'est pas le cas, sauf qu'une chaîne multiligne n'est pas traitée. Cependant, la plupart des IDE Python, si ce n'est tous, ont un raccourci pour «commenter» plusieurs lignes de code.

10
Anti Earth

Si vous mettez un commentaire dans 

"""
long comment here
"""

au milieu d'un script, python/linters ne le reconnaîtra pas. Les pliages seront gâchés, car le commentaire ci-dessus ne fait pas partie des recommandations standard. C'est mieux d'utiliser 

# long comment
# here.

Si vous utilisez vim, vous pouvez utiliser des plugins tels que https://github.com/tpope/vim-commentary , pour commenter automatiquement les longues lignes de commentaires en appuyant sur Vjgcc. Où Vj sélectionne 2 lignes de code et gcc les commente. 

Si vous ne voulez pas utiliser les plugins comme ci-dessus, vous pouvez utiliser rechercher et remplacer comme

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

Ceci remplacera le premier caractère de la ligne actuelle et suivante par #

5
alpha_989

Sur Python 2.7.13:

Unique:

"A sample single line comment "

Multiligne:

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

Malheureusement, stringification pas toujours peut être utilisé comme commentaire! Il est donc plus sûr de rester fidèle à la norme en préfixant chaque ligne avec un #.

Voici un exemple:

test1 = [1, 2, 3, 4,] # test1 contient 4 nombres entiers

test2 = [1, 2, '' '3, 4,' ''] # test2 contient 2 entiers et la chaîne '3, 4,'

3
d.nedelchev

Eh bien, vous pouvez essayer ceci (lors de l'exécution de la citation, l'entrée de la première question devrait être citée avec '):

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

Tout ce qui est inclus entre """ sera commenté.

Si vous recherchez des commentaires sur une seule ligne, c’est alors #.

3
Kaushik Holla

Comment commenter: 

'''
   Comment what you want here
'''

ou

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

Il n'y a pas une telle caractéristique de commentaire multiligne. # est le seul moyen de commenter une seule ligne de code ..___ Beaucoup d'entre vous ont répondu "un commentaire" comme solution. Bien que cela semble fonctionner, mais en interne, '' 'en python prend les lignes délimitées comme des chaînes ordinaires que l'interprète n'ignore pas comme commentaire en utilisant #.

Vérifiez la documentation officielle ici

2
RATAN KUMAR

Oui, c'est bien d'utiliser les deux

'''
Comments
'''

et

""" 
Comments
"""

Cependant, la seule chose dont vous devez tous vous souvenir lors de l'exécution dans un IDE, c'est d'exécuter le fichier entier pour qu'il soit accepté en tant que code à plusieurs lignes. Ligne à ligne 'RUN' ne fonctionnera pas correctement et affichera une erreur.

0
Rajkamal Mishra

'' 'Les commentaires multilignes ont commencé ICI

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

'' 'Le commentaire multiligne se termine ICI

0
Sham Pat

Sélectionnez les lignes que vous souhaitez commenter, puis utilisez "CTRL +?" commenter ou décommenter le code python dans l'éditeur sublime. Pour une seule ligne, vous pouvez utiliser 'shift + #'.

0
Tarjeet Singh

Les commentaires en ligne en python commencent par hash hash.

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

Salut!

Notez qu'un caractère de hachage dans un littéral de chaîne est juste un caractère de hachage.

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

Composez le 100 pour faire un appel d'urgence.

Un caractère de hachage peut également être utilisé pour les commentaires sur une ou plusieurs lignes.

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

Bonjour

Monde

Placez le texte entre guillemets doubles pour prendre en charge 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"))

Bonjour John!

Placez le texte avec des guillemets simples pour les commentaires de bloc.

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

Pour commenter plusieurs lignes de code dans Python, vous devez simplement utiliser un commentaire # sur une seule ligne sur chaque ligne:

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

Pour écrire des commentaires multilignes “corrects” dans Python, vous devez utiliser des chaînes multilignes avec la syntaxe """ et Python possède la fonctionnalité de chaînes de documentation (ou docstrings). Il offre aux programmeurs un moyen simple d’ajouter des notes rapides avec chaque module, fonction, classe et méthode Python.

'''
This is
multiline
comment
'''

Indiquez également que vous pouvez accéder à docstring par un objet de classe comme celui-ci.

myobj.__doc__
0
shafik

VS Code universel bascule de commentaire multiligne officiel.

macOS: sélectionnez code-block puis +/

Windows: sélectionnez code-block puis Ctrl+/

0
tymac

Utilisation de PyCharm IDE.

Vous pouvez comment et uncomment lignes de code à l'aide de Ctrl + /. Ctrl + / commente ou annule la mise en commentaire de la ligne en cours ou de plusieurs lignes sélectionnées avec des commentaires d'une seule ligne - ({# in Django templates, or # in Python scripts). Pressing Ctrl+Shift+/ pour un bloc de code source sélectionné dans un modèle Django entoure le bloc avec des balises {% comment %} and {% endcomment %}.


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

print("Loop ended.")

Sélectionnez toutes les lignes puis appuyez sur Ctrl + /


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

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

Un commentaire multiligne n'existe pas réellement en python. L'exemple ci-dessous consiste en une chaîne non attribuée, validée par Python pour détecter les erreurs de syntaxe. Peu d'éditeurs de texte comme NotePad++ nous fournissent des raccourcis pour commenter un morceau de code ou des mots écrits

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

Également, CTRL + K un raccourci dans Notepad++ pour bloquer les commentaires, il ajoute un # devant chaque ligne de la sélection. CTRL + SHIFTK est pour bloc décommenter.

0
YouKnowWhoIAm

Commentaire multiligne en Python: Pour moi, '' 'et "" "ont fonctionné

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