fundamentals of programming (python)ce.sharif.edu/courses/96-97/1/ce153-12/resources/root... ·...
TRANSCRIPT
Fundamentals of Programming(Python)
Functions
Sina SajadmaneshSharif University of Technology
Fall 2017
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
2SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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
3SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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)
4SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
Definition
5SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
Calling a Function
6SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
ParametersThe inputs to a function is called parameters◦ Parameters are local to the function and cannot be
references 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:
7SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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
8SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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
9SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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
10SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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
11SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017
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
12SINA SAJADMANESH - FUNDAMENTALS OF PROGRAMMING [PYTHON]Fall 2017