If-Else statements – AKA conditional logic – are the bedrock of programming. And Python has these in spades.

Python offers several options for evaluating variables, their states, and whether specific conditions are met:

  • Vanilla if-else statements
  • if statements without the else part
  • nested if-else statements
  • else-if or elif statements
  • and looped if-else statements in the form of for-else and while-else

We'll talk about all of these, and also explain the extremely useful double-equals == operator.

How do you write an if-else statement in Python?

If you're just looking for an example to copy-paste, here is a super simple if-else statement in Python:

if x < y:
	print("x is less than y")
else:
	print("x is equal to or greater than y")

Note that the fact that Python is a whitespace-sensitive ensures that these if-else statements are easy to read – even when they get nested several layers deep.

With that out of the way, let's talk a bit more about conditional logic, and why if-else statements are so important to Python and other programming languages.

How do we use the if-else statement?

If-else statements are a form of conditional logic. Essentially, what that means is

  1. We test a condition. For example, whether a given variable equals another given variable.
  2. If the condition is true, we execute the following block of code.
  3. And if the condition is false, we execute a different block of code.

This is absolutely critical to any sort of programming. You cannot have turing-complete programming languages without some sort of conditional logic. In Python, that means lots of if-else statements.

How is if statement different from if else statement in Python?

So you don't technically need the else part of the if-else statement. For example:

age = int(input("Enter your age: ")) 
if age >= 18: print("You are eligible to vote!")

To see how this works, here is the Python REPL:

>>> age = int(input("Enter your age: "))
Enter your age: 20
>>> if age >= 18: print("You are eligible to vote!")
You are eligible to vote!

>>> age = int(input("Enter your age: "))
Enter your age: 17
>>> if age >= 18: print("You are eligible to vote!")
[nothing happens]

As you can see, this is sort of like an if-else statement with an invisible else. If the else part was there, and the condition was not met, it would just be like "OK. Carry on then."

What is the difference between Else and Elif construct of IF statement?

If you want to have more potential conditions, you can use an elif statement.

Here is an example elif statement:

if x > y:
    print("x is greater than y")
elif x < y:
    print("x is less than y")
else:
    print("x is equal to y")

You'll note that the elif operator appears between the initial if and else operators.

Also note that you can use as many elif as you want.

if condition1:
    statement1
elif condition2:
    statement2
elif condition3:
    statement3
elif condition4:
    statement4
elif condition5:
    statement5
else
	statement6

What is for else and while else in Python?

You can combine conditional logic with loops by using a for else or while else statement.

Here is an example for else statement that hits the break and exits:

for i in range(10):
    print(i)
    if i == 5:
        break
else:
    print("This code will only execute if the for loop completes without hitting a break statement.")

# this will output:
0
1
2
3
4
5

And here is the same for if statement that starts from a higher number, which will skip the break event and finish. Take a look at the code and its output:

for i in range(6,10):
    print(i)
    if i == 5:
        break
else:
    print("This code will only execute if the for loop completes without hitting a break statement.")

# this will output:
6
7
8
9
This code will only execute if the for loop completes without hitting a break statement.

Can you have multiple if statements in Python?

Absolutely. You can have as many nested if statements as you want. Be careful, though. This can lead to the so-called "pyramid of doom."

Here's an example of nested if statements:

if x == 5:
	if y == 10:
	    print("x is 5 and y is 10")
	else:
	    print("x is 5 and y is something else")
else:
	print("x is something else")

Notice how there are two if-else statements, but one of them is nested inside the other. This is OK for a lay or two, but it can get confusing quickly:

if x == 1:
    if y == 2:
        if z == 3:
            print("x, y, and z are all equal to 1, 2, and 3, respectively")
        else:
            print("x and y are equal to 1 and 2, respectively, but z is not equal to 3")
    else:
        print("x is equal to 1 but y is not equal to 2")
else:
    print("x is not equal to 1")

Can you have 3 conditions in an if statement?

Yes. But if you do this, it probably makes sense to use some elif operators in your statement for clarity.

Here is an example if statement with 3 conditions:

if (condition1):
    # execute code1
elif (condition2):
    # execute code2
elif (condition3):
    # execute code3

What does == mean in Python?

The Python == operator – also known as the equality operator – is a comparison operator that returns True if both of the operands (the variables or values on the left and the right of the ==) are equal. Otherwise it will return False.

This is an extremely common tool for crafting if statements and other conditional logic.

Learn it. Know it. Love it.

I hope you learned a lot about if statements.

I sure did in dusting off my Python knowledge and writing this tutorial. I hope you've found this helpful.

If you want to learn more about Python programming, and technology in general, try freeCodeCamp's core coding curriculum. It's free.