fundamentals of programming (python) -...
TRANSCRIPT
![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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022081623/61442ef0aa0cd638b460b0f9/html5/thumbnails/12.jpg)
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