Python has a colon (:) after all statements that start a new block: if, for, while, def, class, with, else. For example: if a == 1: b = 2 However, the colon looks redundant. Both a machine and a human can understand that a new block started by indentation, and you can’t miss that block anyway. For the example above it could look like this: if a == 1 # SyntaxError b = 2 So, why do we need it?