Why do I get the syntax error "SyntaxError: invalid syntax" in a line with perfectly valid syntax?

There are several reasons why you might see the SyntaxError: invalid syntax error in a line with apparently valid syntax. Here are a few common causes:

  1. Unmatched parentheses or brackets: If you have mismatched parentheses or brackets, Python will raise a SyntaxError because it cannot correctly parse the code. For example:
# This will cause a SyntaxError because the parentheses are not matched
x = (1 + 2

# This will also cause a SyntaxError because the brackets are not matched
y = [1, 2, 3

Watch a course Python - The Practical Guide

  1. Forgotten commas: If you forget a comma between items in a list, tuple, or dictionary, Python will raise a SyntaxError because it will interpret the items as separate statements. For example:
# This will cause a SyntaxError because there is no comma between the items in the list
x = [1 2 3]

# This will also cause a SyntaxError because there is no comma between the items in the tuple
y = (1 2)

# This will cause a SyntaxError because there is no comma between the items in the dictionary
z = {'a': 1 'b': 2}
  1. Misplaced indentation: If you have inconsistent indentation in your code, Python will raise a SyntaxError because it cannot correctly parse the code. For example:
# This will cause a SyntaxError because the second line is not indented correctly
if True:
  print(1)
 print(2)
  1. Misplaced colons: If you forget a colon at the end of a line that should have one, or if you put a colon in a place where it does not belong, Python will raise a SyntaxError because it cannot correctly parse the code. For example:
# This will cause a SyntaxError because there is no colon at the end of the line
if True
  print(1)

# This will also cause a SyntaxError because there is a colon in the wrong place
x = 1
y = 2:
  1. Unclosed string literals: If you forget to close a string literal, Python will raise a SyntaxError because it will interpret the rest of the line as part of the string. For example:
# This will cause a SyntaxError because the string is not closed
x = "hello world

These are just a few examples of what might cause a SyntaxError: invalid syntax error. If you are seeing this error and you are not sure why, it is usually helpful to check for these common mistakes.