Python - tutorial - 08/14

if ... else - while loop - for loop

Revision:


Python - conditions and if statements

Python supports the usual logical conditions from mathematics:

Equals: a == b
Not Equals: a != b
Less than: a < b
Less than or equal to: a <= b
Greater than: a > b
Greater than or equal to: a >= b

These conditions can be used in several ways, most commonly in "if statements" and loops. An "if statement" is written by using the if keyword.

Example 1: if statement

        a = 33
        b = 200
        if b > a:
            print("b is greater than a")
    

Indentation: Python relies on indentation (whitespace at the beginning of a line) to define scope in the code. Other programming languages often use curly-brackets for this purpose.

Elif: the "elif" keyword is Python's way of saying "if the previous conditions were not true, then try this condition".

Example 2: if .. elif statement

        a = 33
        b = 33
        if b > a:
            print("b is greater than a")
        elif a == b:
            print("a and b are equal")
    

Else: The "else" keyword catches anything which isn't caught by the preceding conditions.

Example 3: " else" key word

        a = 200
        b = 33
        if b > a:
            print("b is greater than a")
        elif a == b:
            print("a and b are equal")
        else:
            print("a is greater than b")
    

Example 4: "else" without the "elif":

        a = 200
        b = 33
        if b > a:
          print("b is greater than a")
        else:
          print("b is not greater than a")
    

Short hand if: if you have only one statement to execute, you can put it on the same line as the if statement.

Example 5: one line if statement:

        if a > b: print("a is greater than b")
    

Short hand if ... else: if you have only one statement to execute, one for if, and one for else, you can put it all on the same line. This technique is known as Ternary Operators, or Conditional Expressions. You can also have multiple else statements on the same line:

Example 6:one line if else statement:

        a = 2
        b = 330
        print("A") if a > b else print("B")
    

Example 7: one line if else statement, with 3 conditions:

        a = 330
        b = 330
        print("A") if a > b else print("=") if a == b else print("B")
    

And: the "and" keyword is a logical operator, and is used to combine conditional statements.

Example 8: test if a is greater than b, AND if c is greater than a:

        a = 200
        b = 33
        c = 500
        if a > b and c > a:
           print("Both conditions are True")
    

Or: the "or" keyword is a logical operator, and is used to combine conditional statements.

Example 9: test if a is greater than b, OR if a is greater than c:

        a = 200
        b = 33
        c = 500
        if a > b or a > c:
            print("At least one of the conditions is True")
    

Nested if: you can have if statements inside if statements, this is called nested if statements.

Example 10: nested if

        x = 41
        if x > 10:
            print("Above ten,")
            if x > 20:
                print("and also above 20!")
            else:
                print("but not above 20.")
    

The pass statement: if statements cannot be empty, but if you for some reason have an if statement with no content, put in the pass statement to avoid getting an error.

Example 11: pass statement

        a = 33
        b = 200
        if b > a:
            pass
    


Python - while loops

Python loops: Python has two primitive loop commands: while loops and for loops

The while loop: with the while loop we can execute a set of statements as long as a condition is true. The while loop requires relevant variables to be ready.

Example 12: print i as long as i is less than 6:

        i = 1
        while i < 6:
            print(i)
            i += 1
    

Note: remember to increment i, or else the loop will continue forever.

With the break statement we can stop the loop even if the while condition is true:

Example 13: exit the loop when i is 3:

        i = 1
        while i < 6:
            print(i)
            if i == 3:
               break
            i += 1
    

With the continue statement we can stop the current iteration, and continue with the next.

Example 14: continue to the next iteration if i is 3:

        i = 0
        while i < 6:
            i += 1
            if i == 3:
                continue
            print(i)
    

With the else statement we can run a block of code once when the condition no longer is true.

Example 15: print a message once the condition is false:

        i = 1
        while i < 6:
            print(i)
            i += 1
            else:
                print("i is no longer less than 6")
    


Python - for loops

With the for loopwe can execute a set of statements, once for each item in a list, tuple, set, etc. The for loop does not require an indexing variable to set beforehand.

Example 16: print each fruit in a fruit list:

        fruits = ["apple", "banana", "cherry"]
        for x in fruits:
            print(x)
    

Looping through a string: even strings are iterable objects, they contain a sequence of characters.

Example 17: loop through the letters in the word "banana":

        for x in "banana":
            print(x)
    

With the break statement we can stop the loop before it has looped through all the items.

Example 18: exit the loop when x is "banana":

        fruits = ["apple", "banana", "cherry"]
        for x in fruits:
            print(x)
            if x == "banana":
                break
    

Example 19: exit the loop when x is "banana", but this time the break comes before the print:

        fruits = ["apple", "banana", "cherry"]
        for x in fruits:
            if x == "banana":
                break
            print(x)
    

With the continue statement we can stop the current iteration of the loop, and continue with the next:

Example 20: do not print banana:

        fruits = ["apple", "banana", "cherry"]
        for x in fruits:
            if x == "banana":
                continue
            print(x)
    

The range() function: to loop through a set of code a specified number of times, we can use the range() function. The range() function returns a sequence of numbers, starting from 0 by default, and increments by 1 (by default), and ends at a specified number.

Example 21:

        for x in range(6):
            print(x)
    

Note that range(6) is not the values of 0 to 6, but the values 0 to 5.

The range() function defaults to 0 as a starting value, however it is possible to specify the starting value by adding a parameter: range(2, 6), which means values from 2 to 6 (but not including 6):

Example 22: using the start parameter:

        for x in range(2, 6):
            print(x)
    

The range() function defaults to increment the sequence by 1, however it is possible to specify the increment value by adding a third parameter: range(2, 30, 3):

Example 23: increment the sequence with 3 (default is 1):

        for x in range(2, 30, 3):
            print(x)
    

Else in for loop: the "else" keyword in a "for" loop specifies a block of code to be executed when the loop is finished.

Example 24: print all numbers from 0 to 5, and print a message when the loop has ended:

        for x in range(6):
            print(x)
        else:
            print("Finally finished!")
    

Example 25: break the loop when x is 3, and see what happens with the else block:

        for x in range(6):
            if x == 3: break
            print(x)
        else:
            print("Finally finished!")
    

Nested loops: a nested loop is a loop inside a loop. The "inner loop" will be executed one time for each iteration of the "outer loop":

Example 26: print each adjective for every fruit:

        adj = ["red", "big", "tasty"]
        fruits = ["apple", "banana", "cherry"]
        for x in adj:
            for y in fruits:
                print(x, y)
    

The pass statement: for loops cannot be empty, but if you for some reason have a for loop with no content, put in the pass statement to avoid getting an error.

Example 27:

        for x in [0, 1, 2]:
            pass