Is there a difference between pass and continue in a for loop in Python?
Yes, they do completely different things. pass
simply does nothing, while continue
goes on with the next loop iteration. In your example, the difference would become apparent if you added another statement after the if
: After executing pass
, this further statement would be executed. After continue
, it wouldn't.
>>> a = [0, 1, 2]
>>> for element in a:
... if not element:
... pass
... print(element)
...
0
1
2
>>> for element in a:
... if not element:
... continue
... print(element)
...
1
2
What's the difference between pass and continue in python
The pass
keyword is a "no-operation" keyword. It does exactly nothing. It's often used as a placeholder for code which will be added later:
if response == "yes":
pass # add "yes" code later.
The continue
keyword, on the other hand, is used to restart a loop at the control point, such as with:
for i in range(10):
if i % 2 == 0:
continue
print(i)
That loop will only output the odd numbers since continue
returns to the loop control statement (for
) for iterations where i
is even.
Contrast that with the exact same code, but using pass
in place of continue
:
for i in range(10):
if i % 2 == 0:
pass
print(i)
That loop prints all the numbers in the range, since pass
does not return to the loop control statement for even (or any) values of i
. It simply drops through to the print
statement.
In terms of an empty for
loop, you're correct that they're functionally identical. You can use either of:
for i in range(10):
pass
for i in range(10):
continue
Continue and pass: what's the difference?
Pass
pass
means that you're just filling a place where a statement is usually needed
while True:
pass # The pass is needed syntactically
From the documentation:
pass is a null operation -- when it is executed, nothing happens. It is useful as a placeholder when a statement is required syntactically, but no code needs to be executed, for example:
Continue
continue
goes to the next iteration if any.
i = 1
while i<5:
continue # Endless loop because we're going to the next iteration
i = i + 1
From the documentation:
continue may only occur syntactically nested in a for or while loop, but not nested in a function or class definition or finally statement within that loop.6.1It continues with the next cycle of the nearest enclosing loop.
Having some trouble with a 'continue' and 'break' error in my code
The continue function cannot be used unless it is in a loop, and you currently do not have a loop. Loops are typically created with "for" or "while".
Using "for" or "while" would help you immensely, especially since your current code wouldn't check the numbers from zero to 100, but rather just the number 100.
I recommend using or researching the modulo(%) operator, as that would work well in this situation.
If you really get stuck, here is a solution to the problem, along with an explanation for what each line is doing:
solution
It is not the smallest way possible, but it's the way I prefer.
What is the use case for pass in Python?
It is indeed useless in your example.
It is sometimes helpful if you want a block to be empty, something not otherwise allowed by Python. For instance, when defining your own exception subclass:
class MyException(Exception):
pass
Or maybe you want to loop over some iterator for its side effects, but do nothing with the results:
for _ in iterator:
pass
But most of the time, you won't need it.
Remember that if you can add something else that isn't a comment, you may not need pass. An empty function, for instance, can take a docstring and that will work as a block:
def nop():
"""This function does nothing, intentionally."""
Related Topics
Nameerror: Global Name 'Xrange' Is Not Defined in Python 3
Python Library 'Unittest': Generate Multiple Tests Programmatically
Importerror: No Module Named Win32Api
Loop Over a List Containing Path to Sound Files
Pandas: Resample Timeseries with Groupby
Python JSON.Loads Fails with 'Valueerror: Invalid Control Character At: Line 1 Column 33 (Char 33)'
Recursively Iterate Through All Subdirectories Using Pathlib
How to Feed Time-Series Data to Stateful Lstm
Creating a Class Within a Function and Access a Function Defined in the Containing Function's Scope
Format String Unused Named Arguments
Python Pandas Group by Date Using Datetime Data
Zip with List Output Instead of Tuple
Matplotlib: Draw Grid Lines Behind Other Graph Elements