DEV Community

Phylis Jepchumba
Phylis Jepchumba

Posted on

Introduction to Control Flow and Functions in Python.

CONTROL FLOW

What is control Flow?
  • A program's control flow is the order in which the program's code executes.
  • The control flow of a Python program is regulated by conditional statements, loops, and function calls.
Python if Statement

You use the if statement to execute a block of code based on a specified condition.
The syntax of the if statement is as follows:

if condition:
    if-block
Enter fullscreen mode Exit fullscreen mode

The if statement checks the condition first.
If the condition evaluates to True, it executes the statements in the if-block. Otherwise, it ignores the statements.
Example

marks = input('Enter your score:')
if int(marks) >= 40:
    print("You have passed")
Enter fullscreen mode Exit fullscreen mode

Output

Enter your score:46
You have passed
Enter fullscreen mode Exit fullscreen mode
Python if…else statement

Used when you want to perform an action when a condition is True and another action when the condition is False.
Here is the syntax

if condition:
    if-block;
else:
    else-block;
Enter fullscreen mode Exit fullscreen mode
  • From the above syntax, the if...else will execute the if-block if the condition evaluates to True. Otherwise, it’ll execute the else-block.

An example to illustrate how to use the if...else statement:

marks = input('Enter your score:')
if int(age) >= 40:
    print("You have passed.")
else:
    print("You have failed.")
Enter fullscreen mode Exit fullscreen mode
Python if…elif…else statement

It is used to check multiple conditions and perform an action accordingly.
The elif stands for else if.

Here is the syntax:

if if-condition:
    if-block
elif elif-condition1:
    elif-block1
elif elif-condition2:
    elif-block2
...
else:
    else-block
Enter fullscreen mode Exit fullscreen mode
  • The elif statement allows you to check multiple expressions for true and execute a block of code as soon as one of the conditions evaluates to true.
  • If no condition evaluates to true, the if...elif...else statement executes the statement in the else branch.

Example

marks = input('Enter your score:')

your_marks = int(marks)

if your_marks >= 70:
    print("Your grade is A")
elif your_marks >= 60:
    print("Your grade is B")
else:
    print("null")
Enter fullscreen mode Exit fullscreen mode

Output

Enter your score:70
Your grade is A
Enter fullscreen mode Exit fullscreen mode
Python for Loop

To execute a block of code multiple times in programming you use for loop
Here is the syntax:

for index in range(n):
    statement
Enter fullscreen mode Exit fullscreen mode
  • In this syntax, the index is called a loop counter. And n is the number of times that the loop will execute the statement.
  • The range() is a built-in function in Python that generates a sequence of numbers: 0,1, 2, …n-1. Example
for index in range(5):
    print(index)
Enter fullscreen mode Exit fullscreen mode

Output

0
1
2
3
4

Enter fullscreen mode Exit fullscreen mode

Specifying the starting value for the sequence
The range() function allows you to specify the starting number like this:

range(start,stop)
Enter fullscreen mode Exit fullscreen mode

Example

for index in range(1, 4):
    print(index)
Enter fullscreen mode Exit fullscreen mode

Output

1
2
3
4
Enter fullscreen mode Exit fullscreen mode

Specifying the increment for the sequence
By default, the range(start, stop) increases the start value by one in each loop iteration.
To specify increment sequence, use the following syntax:

range(start, stop, step)
Enter fullscreen mode Exit fullscreen mode

The following example shows all odd numbers from 0 to 10:

for index in range(0, 11, 2):
    print(index)
Enter fullscreen mode Exit fullscreen mode

output

0
2
4
6
8
10
Enter fullscreen mode Exit fullscreen mode

Using Python for loop to calculate the sum of a sequence
The following example uses the for loop statement to calculate the sum of numbers from 1 to 50:

sum = 0
for num in range(51):
    sum += num
print(sum)
Enter fullscreen mode Exit fullscreen mode

Output

1275
Enter fullscreen mode Exit fullscreen mode
Python while Loop

Python while statement allows you to execute a code block repeatedly as long as a condition is True
Here is the syntax:

while condition:  
   body
Enter fullscreen mode Exit fullscreen mode
  • The condition is an expression that evaluates to a Boolean value, either True or False.
  • The while statement checks the condition at the beginning of each iteration and executes the body as long as the condition is True. An example that uses a while statement to show 5 numbers from 0 to 4 to the screen:
max = 5
counter = 0

while counter < max:
    print(counter)
    counter += 1
Enter fullscreen mode Exit fullscreen mode

Output

0
1
2
3
4
Enter fullscreen mode Exit fullscreen mode
Python break Statement
  • Break statement in python is used to terminate a for loop and a while loop prematurely regardless of the conditional results. Example:
for index in range(0, 11):
    print(index)
    if index == 3:
        break
Enter fullscreen mode Exit fullscreen mode

Output

0
1
2
3
Enter fullscreen mode Exit fullscreen mode

FUNCTIONS IN PYTHON

A function is a block of organized, reusable code that is used to perform a single, related action.

Defining a Function

Here are simple rules to define a function in Python.

  • Function blocks begin with the keyword def followed by the function name and parentheses ( ( ) ).
  • Any input parameters or arguments should be placed within these parentheses. You can also define parameters inside these parentheses.
  • The code block within every function starts with a colon (:) and is indented.
  • The statement return [expression] exits a function, optionally passing back an expression to the caller. A return statement with no arguments is the same as return None.
Syntax
def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]
Enter fullscreen mode Exit fullscreen mode
Calling a Function

When you want to use a function, you just need to call it. A function call instructs Python to execute the code inside the function.

Returning a value

A function can perform a task like the greet() function. Or it can return a value. The value that a function returns is called a return value.
To return a value from a function, you use the return statement inside the function body.

Function Parameters and Arguments

Parameter and argument can be used for the same thing but from functions perspectives;

  • A parameter is the variable listed inside the parentheses in the function definition.

  • An argument is the value that are sent to the function when it is called.
    From this example;

def addNumbers(a, b):
    sum =a + b
    print("The sum is " ,sum)
addNumbers(2,5)
Enter fullscreen mode Exit fullscreen mode
  • We have a function called addNumbers which contains two values inside the parenthesis, a, and b. These two values are called parameters.
  • We have passed two values along with the function 2 and 5. These values are called arguments.
Python functions with multiple parameters

A function can have zero, one, or multiple parameters.
The following example defines a function called sum() that calculates the sum of two numbers:

def sum(a, b):
    return a + b
total = sum(1,20)
print(total)
Enter fullscreen mode Exit fullscreen mode

output

21
Enter fullscreen mode Exit fullscreen mode

In the above example, the sum() function has two parameters a and b, and returns the sum of them. Use commas to separate multiple parameters.

Types of Arguments in Python Function Definition
  • Default arguments.
  • Keyword arguments.
  • Positional arguments.
  • Arbitrary positional arguments.
  • Arbitrary keyword arguments
Python Recursive Functions
  • A recursive function is a function that calls itself and always has condition that stops calling itself.
Where do we use recursive functions in programming?
  • To divide a big problem that’s difficult to solve into smaller problems that are easier-to-solve.
  • In data structures and algorithms like trees, graphs, and binary searches.

Recursive Function Examples
1.Count Down to Zero

  • countdown()takes a positive number as an argument and prints the numbers from the specified argument down to zero: def countdown(n):
def countdown(n):
    print(n)
    if n == 0:
        return  # Terminate recursion
    else:
        countdown(n - 1)  # Recursive call
countdown(5)
Enter fullscreen mode Exit fullscreen mode

Output

5
4
3
2
1
0
Enter fullscreen mode Exit fullscreen mode

2.Calculating the sum of a sequence
Recursive functions makes a code shorter and readable.
Suppose we want to calculate the sum of sequence from 1 to n instead of using for loop with range() function we can use recursive function.

def sum(n):
    if n > 0:
        return n + sum(n - 1)
    return 0
result = sum(100)
print(result)
Enter fullscreen mode Exit fullscreen mode
Python Lambda Expressions

A lambda function is a small anonymous function that can take any number of arguments, but can only have one expression.
Syntax

lambda arguments : expression
Enter fullscreen mode Exit fullscreen mode

Examples:

def times(n):
    return lambda x: x * n
double = times(2)
result = double(2)
print(result)
result = double(3)
print(result)
Enter fullscreen mode Exit fullscreen mode

From the above example times() function returns a function which is a lambda expression.

Python Decorators.
  • A decorator is a design pattern in Python that allows a user to add new functionality to an existing object without modifying its structure.
  • Decorators are usually called before the definition of a function you want to decorate.

Here is a simple syntax for a basic python decorator

def my_decorator_func(func):
def wrapper_func():
        # Do something before the function.
        func()
        # Do something after the function.
    return wrapper_func
Enter fullscreen mode Exit fullscreen mode

To use a decorator ,you attach it to a function like you see in the code below.

@my_decorator_func
def my_func():

    pass
Enter fullscreen mode Exit fullscreen mode

Top comments (0)