Upload
others
View
5
Download
0
Embed Size (px)
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