How to fix SyntaxError: 'break' outside loop in Python

When writing Python code, you might encounter the following error:

SyntaxError: 'break' outside loop

This error occurs when you put a break statement outside of a loop (like a for or while loop)

The following tutorial shows an example that causes this error and how to fix it.

How to reproduce this error

Imagine you have an if statement that prints a variable when that variable isn’t empty:

name = "Nathan"

if name:
    print("My name is", name)

Next, you put a break statement inside that else block as follows:

name = "Nathan"

if name:
    print("My name is", name)
else:
    break

When you run the code, you get the following output:

  File "/main.py", line 6
    break
    ^^^^^
SyntaxError: 'break' outside loop

The error occurs because the purpose of the break statement is to stop the execution of a loop.

Here’s an example that uses the break statement properly:

for i in range(7):
    if i == 4:
        break
    print(i)

print('For loop finished running')

Output:

0
1
2
3
For loop finished running

The break statement causes the for loop to stop when the value of i is equal to 4. Without it, the loop would print the numbers from 0 to 6.

When used outside of a loop, Python doesn’t understand what you’re trying to achieve.

How to fix this error

To resolve this error, you need to make sure that you’re not putting a break statement outside of a loop.

Returning to the example above, if you want Python to stop executing further code in the else statement, then you can raise an exception as follows:

name = "Nathan"

if name:
    print("My name is", name)
else:
    raise Exception('The variable name is empty')

This time, a proper Exception will be raised when the if statement failed:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    raise Exception('The variable name is empty')
Exception: The variable name is empty

If you want the code to just stop without any output, then you can call the sys.exit() method as follows:

import sys

name = "Nathan"

if name:
    print("My name is", name)
else:
    sys.exit()

This time, the else statement simply stops the code execution without any output.

At other times, you might want to stop a function from executing any further after a condition.

In the following code, the greet() function has a break statement:

def greet(name):
    if name:
        print("Hello! I'm", name)
    else:
        break

greet("")

The code above will cause the same error because a break statement must be inside a loop.

If you’re in this situation, then remove the else statement to resolve the error:

def greet(name):
    if name:
        print("Hello! I'm", name)

greet("")

The function only executes when the if statement evaluates to True. You don’t need to use break to stop the function because it automatically stops after the if statement.

Conclusion

The error SyntaxError: 'break' outside loop occurs in Python when you put a break statement outside of a loop.

To resolve this error, you need to avoid using the break statement outside of a loop. You can use an Exception or the sys.exit() method to replace the statement.

I hope this tutorial is helpful. Happy coding! 👍

Take your skills to the next level ⚡️

I'm sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I'll send new stuff straight into your inbox!

No spam. Unsubscribe anytime.