logo

If statements

In Python you can define conditional statements, known as if-statements.
A block of code is executed if certain conditions are met.

Related Course:
Python Programming Bootcamp: Go from zero to hero

If statements


Consider this application, it executes either the first or second code depending on the value of x.



#!/usr/bin/python

x = 3
if x > 10:
print("x smaller than 10")
else:
print("x is bigger than 10 or equal")


If you set x to be larger than 10, it will execute the second code block.   We use indentation (4 spaces) to define the blocks.

A little game:
A variable may not always be defined by the user, consider this little game:

age = 24

print "Guess my age, you have 1 chances!"
guess = int(raw_input("Guess: "))

if guess != age:
print("Wrong!")
else:
print("Correct")

Conditional operators


A word on conditional operators

Do not confuse the assignment operator (=) with the equals operator (==).

Nesting


The most straightforward way to do multiple conditions is nesting:

Operator Description
!= not equal
== equals
> greater than
< smaller than
a = 12
b = 33

if a > 10:
if b > 20:
print("Good")

This can quickly become difficult to read, consider combining 4 or 6 conditions.  Luckily Python has a solution for this, we can combine conditions using the and keyword.

guess = 24
if guess > 10 and guess < 20:
print("In range")
else:
print("Out of range")

Sometimes you may want to use the or operator.

If you are new to Python programming, I highly recommend this book.

Download Python Exercises

BackNext





Leave a Reply:




Ned h Sat, 30 May 2015

In the first example the second print statement should, surely, read ;x is 10 or bigger' because the inequality test is for less than 10 not less than 11

Frank Sat, 30 May 2015

Hi Ned, sorry my native language is not English. I updated it, thanks for the heads up!

Rhino Tue, 23 Jun 2015

Continually having problems with else, invalid syntax. (using 2.7.3)

Frank Tue, 23 Jun 2015

Hi, syntax errors are usually related to spaces or typos. Could you post your code?

Fred Wed, 01 Jul 2015

Under the "Conditional operators" section, for the sake of readability, aren't "lt;" and "less than" supposed to be on a line by themselves?

Right now, you've got "lt;" stuck to the end of "greater than", with "smaller than" in a column all to itself, and I'm pretty sure that that wasn't your intention.

Frank Wed, 01 Jul 2015

Thanks Fred! It's been fixed

Ms Mon, 06 Jul 2015

please can you help me, im doing interactive fiction in class on python and its very confusing please can you tell me how to make and correctly use a rucksack/ backpack, and why the sleep function isn't working

Frank Mon, 06 Jul 2015

Hi, I think rucksack/backpack is something specific to your class. This is how to use the sleep function:

#!/usr/bin/python
import time

print "Hello"
time.sleep( 1 )
print "World"
Abhi Sat, 11 Jul 2015

#!usr/bin/python
>>> guess=20
>>> if guess>10 and guess<20:
print "In range"
else:print "out of range"

Neil Sun, 09 Aug 2015

after pressing the enter after writing the if block a error showing before entering the else block"IndentationError: expected an indented block". i am using python in OS X yosemite in terminal.

Staff Sun, 09 Aug 2015

Hi Neil! Python uses indention very strictly, make sure every indent (block) is 4 spaces. Tabs or another amount of spaces than 4 will raise an error. Let me know how it works out.

Will Wed, 19 Aug 2015

as soon as i type in else: and press enter, it comes up SyntaxError : invalid syntax?

Frank Wed, 19 Aug 2015

You are in the python interpreter directly. Use a text editor and save the text file as program.py then run it: python program.py
Alternatively use an IDE such as pycharm, komodo ide, atom + plugin.

Maarten Franzen Thu, 20 Aug 2015

How can you repeat this little game?

age = 24
print "Guess my age, you have 1 chances!"
guess = int(raw_input("Guess: "))
if guess != age:
print "Wrong!"
else:
print "Correct"

Do i need a while statement?Iam totaly new to this..

Frank Thu, 20 Aug 2015

It depends on how many repetition you want. For an if-statement, the code will be executed onlyonce. If you don't know in advanced how many times the code will be executed, use a while loop.

Lim Fri, 21 Aug 2015

for the IDE such as pycharm, komodo ide, atom + plugin, which one is best and which one is free? Could you suggest one?

Frank Fri, 21 Aug 2015

It is a matter of preference, all of them use the same Python interpreter underneath.

Pycharm community edition is free. Atom + plugin is free. Komodo IDE is not free.
If you like a programming environment with many windows on the screen, go with PyCharm. For a minimalist appearance, use atom + script plugin. All of the IDEs use the same python programming language underneath.

Lately I like atom + script plugin a lot because of the minimalist appearance, it helps me to focus on the code and has a good UI. The script plugin can be installed from inside the atom IDE and programs run using the ctrl+shift+b shortcut. The PyCharm community edition runs out of the box and doesn't need additional plugins.

If you come from a .NET or Java background, there are Python plugins for Visual Studio, Netbeans and Eclipse.

https://atom.io/
http://komodoide.com/
https://www.jetbrains.com/pycharm/

A full list of programming environments can be found here
https://wiki.python.org/moin/IntegratedDevelopmentEnvironments

Eric Wed, 16 Sep 2015

hello, I'm using a version 3.5 of Python which may be a little different from the tutorial. when I type "else" after "if", it always says invalid syntax. I'm totally confused of that.

Frank Wed, 16 Sep 2015

Hi Eric,
Could you post the code you use? Make sure your indention is right. Python expects four spaces for every code block.

Erica Sat, 21 Nov 2015

I am new to python and just learning the syntax. (I am experienced in other languages).
What is the syntax if I want more than one line of code between if: and else:, and more than one line after else: ?

Frank Mon, 23 Nov 2015

Hi Erica, simply add the lines between if and lines. Python uses indention to define the code blocks. All lines should have the same indention. By default Python imposes four spaces.