How to comment group of lines in python

How to comment group of lines in python

Commenting is an integral part of every programming language. With comments, you get a better understanding of your own code, make it more readable, and can help team members understand how it works.

Comments are ignored by compilers and interpreters, so they don’t run.

Apart from making your code more readable, comments can also help while you're debugging – if you have two lines of code, you can comment out one to prevent it from running.

Just like other programming languages, Python supports comments.

The problem is that Python doesn't have a built-in mechanism for multi-line comments.

So in this article, I won't just show you how to make single-line comments in Python – I'll also show you the workaround for making multi-line comments.

To make single-line comments in Python, prepend each line with a hash (#).

# print("Hello world")

print("Hello campers")

Output:

Hello campers

As you can see, the commented line wasn't printed in the output.

Unlike other programming languages such as JavaScript, Java, and C++ which use /*...*/ for multi-line comments, there's no built-in mechanism for multi-line comments in Python.

To comment out multiple lines in Python, you can prepend each line with a hash (#).

# print("Hello world")
# print("Hello universe")
# print("Hello everyone")

print("Hello campers")

Output:

Hello campers

With this approach, you're technically making multiple single-line comments.

The real workaround for making multi-line comments in Python is by using docstrings.

If you use a docstring to comment out multiple line of code in Python, that block of code will be ignored, and only the lines outside the docstring will run.

"""
This is a multi-line comment with docstrings

print("Hello world")
print("Hello universe")
print("Hello everyone")
"""

print("Hello campers")

Output:

Hello campers

NB: One thing to note is that while using doctsrings for commenting, indentation still matters. If you use 4 spaces (or a tab) for indentation, you will get an indentation error.

For example, this will work:

def addNumbers(num1, num2, num3):
    """
    A function that returns the sum of
    3 numbers
    """
    return num1 + num2 + num3
print(addNumbers(2, 3, 4))

# Output: 9

But this won't work:

def addNumbers(num1, num2, num3):
"""
A function that returns the sum of
3 numbers
"""
    return num1 + num2 + num3
print(addNumbers(2, 3, 4))

So your IDE will throw the error "IndentationError: expected an indented block".

Conclusion

Since there's no built-in support for multi-line comments in Python, this article demonstrates how you can use docstrings as a workaround.

Still, you should generally stick to using regular Python comments using a hash (#), even if you have to use it for multiple lines. This is because docstrings are meant for documentation, and not for commenting out code.

If you found this article helpful, consider sharing it with your friends and family.

Thank you for reading.



Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

You can use triple-quoted strings. When they're not a docstring (the first thing in a class/function/module), they are ignored.

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

(Make sure to indent the leading ''' appropriately to avoid an IndentationError.)

Guido van Rossum (creator of Python) tweeted this as a "pro tip".

However, Python's style guide, PEP8, favors using consecutive single-line comments, like this:

# This is a multiline
# comment.

...and this is also what you'll find in many projects. Text editors usually have a shortcut to do this easily.

larsks

241k37 gold badges358 silver badges348 bronze badges

answered Oct 8, 2011 at 12:58

Petr ViktorinPetr Viktorin

63.7k9 gold badges80 silver badges80 bronze badges

28

Python does have a multiline string/comment syntax in the sense that unless used as docstrings, multiline strings generate no bytecode -- just like #-prepended comments. In effect, it acts exactly like a comment.

On the other hand, if you say this behavior must be documented in the official documentation to be a true comment syntax, then yes, you would be right to say it is not guaranteed as part of the language specification.

In any case, your text editor should also be able to easily comment-out a selected region (by placing a # in front of each line individually). If not, switch to a text editor that does.

Programming in Python without certain text editing features can be a painful experience. Finding the right editor (and knowing how to use it) can make a big difference in how the Python programming experience is perceived.

Not only should the text editor be able to comment-out selected regions, it should also be able to shift blocks of code to the left and right easily, and it should automatically place the cursor at the current indentation level when you press Enter. Code folding can also be useful.


To protect against link decay, here is the content of Guido van Rossum's tweet:

@BSUCSClub Python tip: You can use multi-line strings as multi-line comments. Unless used as docstrings, they generate no code! :-)

How to comment group of lines in python

answered Oct 8, 2011 at 12:54

unutbuunutbu

797k171 gold badges1721 silver badges1623 bronze badges

10

From the accepted answer...

You can use triple-quoted strings. When they're not a docstring (first thing in a class/function/module), they are ignored.

This is simply not true. Unlike comments, triple-quoted strings are still parsed and must be syntactically valid, regardless of where they appear in the source code.

If you try to run this 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

You'll get either...

ValueError: invalid \x escape

...on Python 2.x or...

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

...on Python 3.x.

The only way to do multi-line comments which are ignored by the parser is...

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

answered Jun 29, 2016 at 13:04

4

In Python 2.7 the multiline comment is:

"""
This is a
multilline comment
"""

In case you are inside a class you should tab it properly.

For example:

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

How to comment group of lines in python

ncica

6,8821 gold badge14 silver badges33 bronze badges

answered Feb 16, 2015 at 14:00

3

I think it doesn't, except that a multiline string isn't processed. However, most, if not all Python IDEs have a shortkey for 'commenting out' multiple lines of code.

How to comment group of lines in python

answered Oct 8, 2011 at 12:54

How to comment group of lines in python

Anti EarthAnti Earth

4,55311 gold badges51 silver badges82 bronze badges

There is no such feature as a multi-line comment. # is the only way to comment a single line of code. Many of you answered ''' a comment ''' this as their solution.

It seems to work, but internally ''' in Python takes the lines enclosed as a regular strings which the interpreter does not ignores like comment using #.

Check the official documentation here

How to comment group of lines in python

answered Oct 6, 2018 at 12:09

How to comment group of lines in python

RATAN KUMARRATAN KUMAR

5046 silver badges11 bronze badges

1

If you put a comment in

"""
long comment here
"""

in the middle of a script, Python/linters won't recognize that. Folding will be messed up, as the above comment is not part of the standard recommendations. It's better to use

# Long comment
# here.

If you use Vim, you can plugins like commentary.vim, to automatically comment out long lines of comments by pressing Vjgcc. Where Vj selects two lines of code, and gcc comments them out.

If you don’t want to use plugins like the above you can use search and replace like

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

This will replace the first character on the current and next line with #.

How to comment group of lines in python

answered Jan 31, 2018 at 18:16

alpha_989alpha_989

4,5511 gold badge34 silver badges47 bronze badges

0

Visual Studio Code universal official multi-line comment toggle. Similar to Xcode shortcut.

macOS: Select code-block and then ⌘+/

Windows: Select code-block and then Ctrl+/

answered Aug 29, 2019 at 4:01

How to comment group of lines in python

EdisonEdison

11.6k4 gold badges39 silver badges49 bronze badges

Unfortunately stringification can not always be used as commenting out! So it is safer to stick to the standard prepending each line with a #.

Here is an example:

test1 = [1, 2, 3, 4,]       # test1 contains 4 integers

test2 = [1, 2, '''3, 4,'''] # test2 contains 2 integers **and the string** '3, 4,'

How to comment group of lines in python

answered Jun 27, 2018 at 14:44

I would advise against using """ for multi line comments!

Here is a simple example to highlight what might be considered an unexpected behavior:

print('{}\n{}'.format(
    'I am a string',
    """
    Some people consider me a
    multi-line comment, but
    """
    'clearly I am also a string'
    )
)

Now have a look at the output:

I am a string

    Some people consider me a
    multi-line comment, but
    clearly I am also a string

The multi line string was not treated as comment, but it was concatenated with 'clearly I'm also a string' to form a single string.

If you want to comment multiple lines do so according to PEP 8 guidelines:

print('{}\n{}'.format(
    'I am a string',
    # Some people consider me a
    # multi-line comment, but
    'clearly I am also a string'
    )
)

Output:

I am a string
clearly I am also a string

answered Sep 29, 2019 at 17:38

jojojojo

9,4482 gold badges48 silver badges69 bronze badges

0

Well, you can try this (when running the quoted, the input to the first question should quoted with '):

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

Whatever enclosed between """ will be commented.

If you are looking for single-line comments then it's #.

How to comment group of lines in python

answered Sep 15, 2017 at 5:27

How to comment group of lines in python

K_hollaK_holla

1241 silver badge3 bronze badges

Multiline comment in Python:

For me, both ''' and """ worked.

Example:

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

Example:

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

How to comment group of lines in python

answered Aug 30, 2018 at 8:41

How to comment group of lines in python

Viraj WadateViraj Wadate

4,5311 gold badge27 silver badges28 bronze badges

On Python 2.7.13:

Single:

"A sample single line comment "

Multiline:

"""
A sample
multiline comment
on PyCharm
"""

How to comment group of lines in python

answered May 11, 2017 at 15:47

How to comment group of lines in python

Alvin GeorgeAlvin George

13.8k87 silver badges64 bronze badges

2

The inline comments in Python starts with a hash character.

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

Hello!

Note that a hash character within a string literal is just a hash character.

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

Dial #100 to make an emergency call.

A hash character can also be used for single or multiple lines comments.

hello = "Hello"
world = "World"
# First print hello
# And print world
print(hello)
print(world)

Hello

World

Enclose the text with triple double quotes to support 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"))

Hello John!

Enclose the text with triple single quotes for block comments.

'''
I don't care the parameters and
docstrings here.
'''

How to comment group of lines in python

answered Dec 15, 2018 at 4:26

Madan SapkotaMadan Sapkota

23.8k11 gold badges112 silver badges115 bronze badges

If you write a comment in a line with a code, you must write a comment, leaving 2 spaces before the # sign and 1 space before the # sign

print("Hello World")  # printing

If you write a comment on a new line, you must write a comment, leaving 1 space kn in the # sign

# single line comment

To write comments longer than 1 line, you use 3 quotes

"""
This is a comment
written in
more than just one line
"""

Georgy

10.8k7 gold badges62 silver badges68 bronze badges

answered Sep 8, 2020 at 15:44

How to comment group of lines in python

1

Using PyCharm IDE.

You can comment and uncomment lines of code using Ctrl+/. Ctrl+/ comments or uncomments the current line or several selected lines with single line comments ({# in Django templates, or # in Python scripts). Pressing Ctrl+Shift+/ for a selected block of source code in a Django template surrounds the block with {% comment %} and {% endcomment %} tags.


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

print("Loop ended.")

Select all lines then press Ctrl + /


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

# print("Loop ended.")

answered Mar 14, 2019 at 7:53

How to comment group of lines in python

0m3r0m3r

11.8k15 gold badges31 silver badges68 bronze badges

Yes, it is fine to use both:

'''
Comments
'''

and

"""
Comments
"""

But, the only thing you all need to remember while running in an IDE, is you have to 'RUN' the entire file to be accepted as multiple lines codes. Line by line 'RUN' won't work properly and will show an error.

How to comment group of lines in python

answered Jun 11, 2019 at 12:41

How to comment group of lines in python

Among other answers, I find the easiest way is to use the IDE comment functions which use the Python comment support of #.

I am using Anaconda Spyder and it has:

  • Ctrl + 1 - Comment/uncomment
  • Ctrl + 4 - Comment a block of code
  • Ctrl + 5 - Uncomment a block of code

It would comment/uncomment a single/multi line/s of code with #.

I find it the easiest.

For example, a block comment:

# =============================================================================
#     Sample Commented code in spyder
#  Hello, World!
# =============================================================================

How to comment group of lines in python

answered Nov 7, 2019 at 14:32

aniltilantheaniltilanthe

3,8071 gold badge15 silver badges17 bronze badges

0

This can be done in Vim text editor.

Go to the beginning of the first line in the comment area.

Press Ctrl+V to enter the visual mode.

Use arrow keys to select all the lines to be commented.

Press Shift+I.

Press # (or Shift+3).

Press Esc.

answered Aug 21 at 4:07

Liker777Liker777

2,1334 gold badges17 silver badges24 bronze badges

For commenting out multiple lines of code in Python is to simply use a # single-line comment on every line:

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

For writing “proper” multi-line comments in Python is to use multi-line strings with the """ syntax Python has the documentation strings (or docstrings) feature. It gives programmers an easy way of adding quick notes with every Python module, function, class, and method.

'''
This is
multiline
comment
'''

Also, mention that you can access docstring by a class object like this

myobj.__doc__

answered Jul 8, 2019 at 3:34

How to comment group of lines in python

shafikshafik

5,7075 gold badges34 silver badges45 bronze badges

2

A multiline comment doesn't actually exist in Python. The below example consists of an unassigned string, which is validated by Python for syntactical errors.

A few text editors, like Notepad++, provide us shortcuts to comment out a written piece of code or words.

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

Also, Ctrl + K is a shortcut in Notepad++ to block comment. It adds a # in front of every line under the selection. Ctrl + Shift + K is for block uncomment.

How to comment group of lines in python

answered Dec 10, 2018 at 9:20

0

Select the lines that you want to comment and then use Ctrl + ? to comment or uncomment the Python code in the Sublime Text editor.

For single line you can use Shift + #.

How to comment group of lines in python

answered Jan 22, 2019 at 11:04

How to comment group of lines in python

You can use the following. This is called DockString.

def my_function(arg1):
    """
    Summary line.
    Extended description of function.
    Parameters:
    arg1 (int): Description of arg1
    Returns:
    int: Description of return value
    """
    return arg1

print my_function.__doc__

How to comment group of lines in python

answered Jan 21, 2020 at 18:09

unknownunknown

3245 silver badges24 bronze badges

2

Yes, you can simply use

'''
Multiline!
(?)
'''

or

"""
Hello
World!
"""

BONUS: It's a little bit harder, but it's safer to use in older versions, print functions or GUIs:

# This is also
# a multiline comment.

For this one, you can select the text you want to comment and press Ctrl / (or /), in PyCharm and VS Code.

But you can edit them. For example, you can change the shortcut from Ctrl / to Ctrl Shift C.

WARNING!

  1. Be careful, don't overwrite other shortcuts!
  2. Comments have to be correctly indented!

Hope this answer helped. Good luck next time when you'll write other answers!

answered Jun 16 at 11:03

in windows: you can also select the text or code chunks and press ctr + / and do the same if you want to remove the comments. in mac: it should be comment + /

answered Aug 13 at 13:32

Seyma KalaySeyma Kalay

1,7939 silver badges15 bronze badges

I read about all of the drawbacks of the various ways of doing this, and I came up with this way, in an attempt to check all the boxes:

block_comment_style = '#[]#'
'''#[
class ExampleEventSource():
    def __init__(self):
        # create the event object inside raising class
        self.on_thing_happening = Event()

    def doing_something(self):
        # raise the event inside the raising class
        self.on_thing_happening()        
        
        
class ExampleEventHandlingClass():
    def __init__(self):
        self.event_generating_thing = ExampleEventSource()
        # add event handler in consuming class
        event_generating_thing.on_thing_happening += my_event_handler
        
    def my_event_handler(self):
        print('handle the event')
]#'''


class Event():
 
    def __init__(self):
        self.__eventhandlers = []
 
    def __iadd__(self, handler):
        self.__eventhandlers.append(handler)
        return self
 
    def __isub__(self, handler):
        self.__eventhandlers.remove(handler)
        return self
 
    def __call__(self, *args, **keywargs):
        for eventhandler in self.__eventhandlers:
            eventhandler(*args, **keywargs)

Pros

  1. It is obvious to any other programmer this is a comment. It's self-descriptive.
  2. It compiles
  3. It doesn't show up as a doc comment in help()
  4. It can be at the top of the module if desired
  5. It can be automated with a macro.
  6. [The comment] is not part of the code. It doesn't end up in the pyc. (Except the one line of code that enables pros #1 and #4)
  7. If multi-line comment syntax was ever added to Python, the code files could be fixed with find and replace. Simply using ''' doesn't have this advantage.

Cons

  1. It's hard to remember. It's a lot of typing. This con can be eliminated with a macro.
  2. It might confuse newbies into thinking this is the only way to do block comments. That can be a pro, just depends on your perspective. It might make newbies think the line of code is magically connected to the comment "working".
  3. It doesn't colorize as a comment. But then again, none of the answers that actually address the spirit of the OP's question would.
  4. It's not the official way, so Pylint might complain about it. I don't know. Maybe; maybe not.

Here's an attempt at the VS Code macro, although I haven't tested it yet:

{
    "key": "ctrl+shift+/",
    "command": "editor.action.insertSnippet",
    "when": "editorHasSelection"
    "args": {
        "snippet": "block_comment_style = '#[]#'\n'''#[{TM_SELECTED_TEXT}]#'''"
    }
}

answered Sep 23 at 15:57

toddmotoddmo

19k13 gold badges89 silver badges100 bronze badges

How do you comment multiple lines in Python?

To comment out multiple lines in Python, you can prepend each line with a hash ( # ). With this approach, you're technically making multiple single-line comments.

How do you comment a group of lines?

Press Ctrl + /.
Select all the lines that you would like to be commented..
Press Ctrl + / Two slashes "//" will be added to the front of each line, causing them to be recognized as a comment..

How do you comment out multiple lines in a notebook in Python?

All you need to do, is select all the lines you want to comment and press Ctrl + / as shown in below video.

How do you comment multiple lines in Python Ctrl?

Comment with Line Comment.
the first press Ctrl + / will comment all lines (adding the second comment symbol # # in front of the commented lines).
the second one Ctrl + / will uncomment all lines (only the first comment sign).