Fundamentals of Programming (Python) -...

Preview:

Citation preview

Fundamentals of Programming(Python)

Functions

Ali TaheriSharif University of Technology

Spring 2019

Slides have been adapted from “CSCI 111: Fundamentals of Programming I” by Sara Sprenkle

Outline1. Functions and Advantages

2. Definition and Calling

3. Function Parameters

4. Function Output

5. Flow of Control

6. Program Organization

2ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

FunctionsFunctions perform some task◦ May take arguments/parameters

◦ May return a value that can be later used

Function is a black box◦ Implementation doesn't matter

◦ Only care that function generates appropriate output

3ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

AdvantagesAllows you to break up a hard problem into smaller, more manageable parts

Makes your code easier to understand

Hides implementation details (abstraction)

Makes part of the code reusable so that you: ◦ Only have to write function code once

◦ Can debug it all at once

◦ Can make changes in one function (maintainability)

4ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

Definition

5ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

Calling a Function

6ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

ParametersThe inputs to a function are called parameters◦ Parameters are local to the function and cannot be

referenced outside the function body

When calling a function: ◦ Must appear in the same order as function header:

◦ Or, must used in name=value way:

◦ Or both:

7ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

average = average2(100, 50)

average = average2(num1=100, num2=50)

average = average2(100, num2=50)

Passing ParametersOnly copies of the actual parameters are given to the function for immutable data types◦ Most of the data types we have talked about, such as

integer, float, string, and boolean are immutable

The actual parameters in the calling code do not change

8ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

Function OutputWhen the code reaches a statement like:

◦ The function stops executing

◦ x is the output returned to the place where the function was called

For functions that don't have explicit output, return does not have a value with it

Optional: don't need to have return◦ Function automatically returns at the end

9ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

return x

Flow of ControlWhen program calls a function, the program jumps to the function and executes it

After executing the function, the program returns to the same place in the calling code where it left of

10ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

Program OrganizationThe main function◦ In many languages, you put the “driver” for your

program in a main function◦ You can (and should) do this in Python as well

◦ Typically main functions are defined at the top of your program◦ Readers can quickly see an overview of what program does

◦ main usually takes no arguments

11ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

def main():

Program OrganizationThe main function◦ Call main() at the bottom of your program

◦ You can (and should) do this in Python as well

◦ Side effects:◦ Do not need to define functions before main function

◦ main can “see” all other functions

12ALI TAHERI - FUNDAMENTALS OF PROGRAMMING [PYTHON]Spring 2019

Recommended