Can I return continue from a function?
A function that contains a while
or for
loop can also use break
and continue
to abort the loop. If this would also end the function, the more Pythonic alternative would be to just use return
. As a rule of thumb, you can end iterative repetition using break
, and recursive repetition using return
.
To exemplify this, let’s create a simple function that loops through numbers from 1 to 10 and stops the loop with break
when it encounters the number 5, continue
to skip over the number 3, and return
to abort the function when it encounters the number 8.
def loop_example(): for i in range(1, 11): if i == 3: continue # Skip the rest of the loop for this iteration and continue with the next iteration elif i == 5: break # Terminate the loop and end the iterative repetition elif i == 8: return # Stop the execution of the function entirely print(i) loop_example()
In this code, continue
is used to skip the number 3, break
is used to stop the loop when it reaches the number 5, and return
is used to terminate the function when the number 8 is encountered (which in this case never happens due to the break
statement). The result of this function would be printing the numbers 1, 2, and 4.
This is an illustrative example to show the usage of continue
, break
, and return
. The order of if
checks and which numbers we attach to each control statement (continue
, break
, return
) are arbitrary and just for the purpose of this demonstration. Depending on your specific needs, you might want to structure the control flow of your function differently.
As stated in the original quote, the more Pythonic way to terminate a function (even one with a loop) would be to use return
, and break
is typically used to end an iterative process prematurely. Recursion, which involves a function calling itself, can also be terminated with return
, but that’s a topic for another time.
Understanding Python Functions
Python functions are reusable chunks of code that perform specific tasks within a program. They help to break down complex problems into smaller, manageable parts, and to avoid repetition of code across different sections.
Functions in Python are defined using the def
keyword, followed by the function name, a pair of parentheses, and a colon. The function’s body, which contains the code to be executed, is then indented under the function definition.
def my_function(): # code to be executed pass
To return a value from a function, the return
keyword is used, followed by the value or expression to be returned. This value can then be used in other parts of the program, or assigned to a variable for future use.
def add_numbers(x, y): result = x + y return result sum_result = add_numbers(5, 3) # sum_result now holds the value of 8
It is important to note that once a function encounters a return
statement, it immediately stops executing and exits the function. Any code after the return statement will not be executed.
To use a function in Python, simply call it by its name, followed by a pair of parentheses enclosing any required arguments. The arguments passed to a function should match the parameters specified in the function definition.
def greet(name): return f"Hello, {name}!" message = greet("John") # message now holds the value "Hello, John!"
In certain situations, it may be necessary to have a function execute multiple statements after returning a value. While the traditional return
statement will not allow this, Python’s generator functions provide an alternative solution. By using the yield
keyword instead of return
, a generator function can continue execution after yielding a value.
def count_up_to(max_value): count = 1 while count <= max_value: yield count count +=1 for number in count_up_to(5): print(number)
In this example, the count_up_to
generator function yields numbers from 1 to the specified max_value
.
💡 The function continues execution after yielding each value, allowing it to generate a series of values when used in a loop.
Function Calls and Return Values
In Python, a function call is a statement that executes a function by passing input values, known as arguments, and then receiving a return value. The return value represents the final result of the function’s operations. When a function does not explicitly return any value, it implicitly returns the None
object.
def add(x, y): return x + y result = add(3, 4) # function call; result contains the return value (7)
A tuple can be used as a return value when a function needs to return multiple values. This allows for returning several Python objects in a single return statement. You can then unpack the tuple to access individual elements.
def calculate(x, y): return x + y, x - y sum, difference = calculate(5, 3) # sum gets 8, difference gets 2
Keep in mind that the returned objects can be of any Python object type, such as integers, strings, lists, or even custom classes.
It is important to write functions with clear and concise return values, as this can greatly improve the readability and maintainability of your code. Remember that, in Python, less is often more. Balance simplicity with effectiveness to create powerful, reusable functions.
Here is an example of a function returning a Python object:
class Person: def __init__(self, name, age): self.name = name self.age = age def create_person(name, age): return Person(name, age) new_person = create_person("Alice", 30) # new_person is a Person object
In summary, function calls and return values are fundamental building blocks of Python programming. Utilize various return types such as None
, tuples, and Python objects to create versatile and effective functions.
Python Return Statement
The Python return statement is a key component in functions, allowing you to send Python objects back to the caller code. These objects are known as the function’s return value, which can be used for further computation in your programs.
For example, you can create a function that returns a list and use it in your calculations. You can learn how to create such a function in this tutorial.
def create_list(num): return [i for i in range(num)] numbers = create_list(5) print(numbers) # Output: [0, 1, 2, 3, 4]
However, it is important to understand that once the return statement is executed, the function terminates, and no further code within the function is executed. For instance:
def example_function(num): if num > 5: return "Greater than 5" print("This message won't be displayed if num > 5") return "Equal to or less than 5" result = example_function(10) print(result) # Output: Greater than 5
In this example, the print statement after the first return is never executed when num > 5
.
Python Loops and Iterations
Loops are essential control structures in Python programming, allowing you to iterate through a sequence or perform a task repeatedly until a specific condition is met. There are two primary types of loops in Python: for loop and while loop.
A for loop is used to iterate over a sequence such as a list, tuple, or string. The basic structure of a for loop involves using the for
keyword followed by a user-defined variable representing the current element in the sequence, the in
keyword, and the sequence itself:
for element in sequence: # code block to execute for each element
For example, using a one-line for loop, you can easily achieve condensed algorithms and perform list comprehensions. Meanwhile, a while loop is used to repeatedly execute a code block as long as a specific condition is true:
while condition: # code block to execute while the condition is true
When working with loops, it’s crucial to manipulate the loop’s flow to achieve the desired outcome. Python provides break
, continue
, and pass
statements, which allow you to control the loop’s behavior based on some conditions.
The break
statement is used to exit a loop completely, skipping the remaining iterations. It is particularly useful when searching for an element in a sequence or when a stop condition is met. On the other hand, the continue
statement is used to skip the current iteration and resume the loop at the next iteration. It is helpful when you want to ignore certain elements in the sequence.
Additionally, you can use loop variables in pair, such as tuples (i, j), to iterate through an iterable of pairs of values. This expression allows you to capture both values in the loop variables i
and j
in each iteration.
Continue, Break and Yield in Functions
In Python, control flow within loops can be modified using continue
, break
, and yield
.
The continue
statement allows the code to skip the remaining portion of the current iteration and move onto the next one.
For example:
for i in range(1, 11): if i % 2 != 0: continue print(i)
In this example, the loop iterates over the numbers 1 to 10. If the number is odd, the loop skips the print()
statement and proceeds with the next iteration.
On the other hand, the break
statement is used to exit a loop early, usually when a specific stopping condition is met. Returning to our previous example, if we want to stop the loop when the first even number is found, we would use the break
statement:
for i in range(1, 11): if i % 2 == 0: print(i) break
In this case, the loop stops as soon as an even number is encountered, which is 2 in our example. Learn more about stopping loops in this Finxter article.
Finally, the yield
statement is used in generator functions. A generator function is a special type of function that returns an iterator, allowing you to iterate over it using a for
loop or the next()
function.
Generators can be helpful when working with large data sets or infinite sequences, as they only generate the next value when required, rather than storing the entire sequence in memory.
Here’s an example of a generator function:
def yield_even_numbers(): num = 1 while True: if num % 2 == 0: yield num num += 1 even_numbers = yield_even_numbers() for i in range(5): print(next(even_numbers))
This generator function keeps yielding even numbers as needed. You can call next()
on the generator object or iterate over it in a loop.
Examples of Using Return, Continue, and Break
In Python, return
, continue
, and break
are widely used in controlling the flow of loops. Let’s explore some examples that demonstrate how to use them in for
and while
loops.
Example 1: Using break in a for loop
for i in range(1, 11): if i == 5: break print(i)
In this example, the for
loop iterates through the range from 1 to 10. When i
is equal to 5, the break
statement is encountered, which immediately terminates the loop and stops further iteration. The output will be:
1 2 3 4
Example 2: Using continue in a while loop
count = 0 while count < 10: count += 1 if count % 2 == 0: continue print(count)
Here, we use a while
loop that continues until the count
reaches 10. If the count
is an even number, the continue
statement is executed and the loop skips the print statement for that iteration, effectively printing only the odd numbers. The output will be:
1 3 5 7 9
Example 3: Using return in a function with loops
def find_first_even(numbers): for num in numbers: if num % 2 == 0: return num numbers_list = [1, 3, 7, 9, 12, 15] result = find_first_even(numbers_list) print(result)
In this example, we have created a function that takes a list of numbers as input and uses a for
loop to find the first even number in the list. When an even number is found, the return
statement is executed, and the function returns the value. The loop immediately stops further iterations, and the output will be:
12
These are just a few examples of how return
, continue
, and break
statements can be used within Python loops for better control and flexibility in your code.
Frequently Asked Questions
What is the difference between continue and pass in Python?
continue
and pass
are both control flow statements in Python. continue
is used within loops to skip the rest of the current iteration and move on to the next iteration. On the other hand, pass
is a null operation that acts as a placeholder when syntax requires a statement, but no action should be taken.
for i in range(5): if i == 2: continue print(i) # Will not print 2 for i in range(5): if i == 2: pass print(i) # Will print all numbers, including 2
How can you return to previous code in Python?
In Python, you cannot directly return to previous code execution. However, you can achieve a similar effect by using functions or loops that encapsulate specific portions of the code that you want to re-execute.
What is the syntax for a continue statement in an if block?
Here is an example of using a continue
statement inside an if
block in a loop:
for i in range(5): if i == 2: continue print(i)
How do you use return in a for loop in other programming languages?
In some other programming languages like C and JavaScript, you can use return
statements within loops when defining a function. When a return
statement is encountered, the function’s execution stops, and the value specified by the return
statement is given back to the caller.
function example() { for (let i = 0; i < 5; ++i) { if (i === 2) { return i; } } }
What is the specific purpose of the continue statement in Python loops?
The specific purpose of the continue
statement in Python loops is to skip the remaining code within the current iteration and move on to the next iteration of the loop. It allows you to avoid processing certain values or scenarios within the loop without having to break out of the loop entirely.
How does return affect loop behavior in Python compared to other languages?
In Python, using a return
statement within a loop will immediately exit the loop and the enclosing function, returning a specified value to the caller. In contrast, other languages may allow you to use return
within a loop, depending on the language syntax and semantics. However, the primary effect of using return
in a loop is to stop the loop execution and return from the function, just as it is in Python.
💡 Recommended: Python One-Line Generator

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.