12
Fundamentals of Programming (Python) Functions Ali Taheri Sharif University of Technology Spring 2019 Slides have been adapted from “CSCI 111: Fundamentals of Programming I” by Sara Sprenkle

Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 2: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 3: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 4: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 5: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

Definition

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

Page 6: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

Calling a Function

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

Page 7: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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)

Page 8: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 9: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 10: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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

Page 11: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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():

Page 12: Fundamentals of Programming (Python) - Sharifce.sharif.edu/courses/97-98/2/ce153-3/resources/root...Outline 1. Functions and Advantages 2. Definition and Calling 3. Function Parameters

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