Functions
• What is Function?
• Why we need Functions?
• What is Function call?
• How python gives different way to write function?
We have already used several functions
• When we have written first program of python we have used function.
print(“Hello World”) here print is function and Hello World is
arguments we will see it later part.
• Python gives huge set of library function and very easy to use.
Stored (and reused) Steps
def
hello(): Program:
print 'Hello' Output:
def thing():
print 'Fun' print 'Hello’
print 'Fun’ Hello
hello() Fun
thing()
print 'Zip’ Zip
print “Zip” thing()
Hello
Fun
hello()
We call these reusable pieces of code “functions”.
Python Functions
• There are two kinds of functions in Python.
• Built-in functions that are provided as part of Python - input(), type(),
float(), int() ...
• Functions that we define ourselves and then use
• We treat the built-in function names as "new" reserved words (i.e. we
avoid them as variable names)
Function Definition
• In Python a function is some reusable code that takes arguments(s) as
input does some computation and then returns a result or results
• We define a function using the def reserved word
• We call/invoke the function by using the function name, parenthesis
and arguments in an expression
Argument
big = max('Hello world')
Assignment
'w'
Result
>>> big = max('Hello world')
>>> print bigw>>> tiny =
min('Hello world')
>>> print tiny>>>
Max Function
A function is some stored
>>> big = max('Hello world') code that we use. A
>>> print big'w' function takes some input
and produces an output.
“Hello world” max() ‘w’
(a string) function (a string)
Guido wrote this code
Max Function
A function is some stored
>>> big = max('Hello world') code that we use. A
>>> print big'w' function takes some input
and produces an output.
def max(inp):
blah
“Hello world” blah ‘w’
for x in y: (a string)
(a string)
blah
blah
Guido wrote this code
Type Conversions >>> print float(99) / 100
0.99
>>> i = 42
>>> type(i)
• When you put an integer and <type 'int'>
floating point in an expression >>> f = float(i)
the integer is implicitly >>> print f
converted to a float 42.0
>>> type(f)
<type 'float'>
• You can control this with the >>> print 1 + 2 * float(3) / 4 - 5
built in functions int() and float() -2.5
>>>
String >>> sval = '123'
>>> type(sval)
Conversions <type 'str'>
>>> print sval + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
• You can also use int() and TypeError: cannot concatenate 'str' and 'int'
>>> ival = int(sval)
float() to convert between >>> type(ival)
strings and integers <type 'int'>
>>> print ival + 1
124
• You will get an error if the >>> nsv = 'hello bob'
string does not contain >>> niv = int(nsv)
numeric characters Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int()
Building our Own Functions
• We create a new function using the def keyword followed by optional
parameters in parenthesis.
• We indent the body of the function
• This defines the function but does not execute the body of the
function
def print_lyrics():
print "I'm a lumberjack, and I'm okay.”
print 'I sleep all night and I work all day.'
print "I'm a lumberjack, and I'm okay."
x=5 print_lyrics(): print 'I sleep all night and I work all day.'
print 'Hello'
def print_lyrics():
print "I'm a lumberjack, and I'm okay.”
print 'I sleep all night and I work all day.' Hello
Yo
print 'Yo' 7
x=x+2
print x
Definitions and Uses
• Once we have defined a function, we can call (or invoke) it as many
times as we like
• This is the store and reuse pattern
x=5
print 'Hello'
def print_lyrics():
print "I'm a lumberjack, and I'm okay.”
print 'I sleep all night and I work all day.'
print 'Yo'
print_lyrics() Hello
x=x+2 Yo
print x I'm a lumberjack, and I'm okay.I
sleep all night and I work all day.
7
Arguments
• An argument is a value we pass into the function as its input when we
call the function
• We use arguments so we can direct the function to do different kinds
of work when we call it at different times
• We put the arguments in parenthesis after the name of the function
big = max('Hello world')
Argument
Parameters >>> def greet(lang):
... if lang == 'es':
... print 'Hola’
... elif lang == 'fr':
• A parameter is a variable ... print 'Bonjour’
which we use in the ... else:
function definition that is a ... print 'Hello’
“handle” that allows the ...
code in the function to >>> greet('en')Hello
access the arguments for a >>> greet('es')Hola
particular function >>> greet('fr')Bonjour
invocation. >>>
Return Values
• Often a function will take its arguments, do some computation and
return a value to be used as the value of the function call in the calling
expression. The return keyword is used for this.
def greet():
return "Hello” Hello Glenn
Hello Sally
print greet(), "Glenn”
print greet(), "Sally"
>>> def greet(lang):
Return Value ... if lang == 'es':
... return 'Hola’
... elif lang == 'fr':
... return 'Bonjour’
• A “fruitful” function is one ... else:
that produces a result (or ... return 'Hello’
return value) ... >>> print greet('en'),'Glenn’
Hello Glenn
• The return statement ends >>> print greet('es'),'Sally’
the function execution and Hola Sally
“sends back” the result of >>> print greet('fr'),'Michael’
the function Bonjour Michael
>>>
Arguments, Parameters, and Results
>>> big = max('Hello world') Parameter
>>> print big'w'
def max(inp):
blah
“Hello world” blah ‘w’
for x in y:
Argument blah
Result
blah
return ‘w’
Multiple Parameters / Arguments
• We can define more than
one parameter in the
function definition
def addtwo(a, b):
• We simply add more added = a + b
arguments when we call the return added
function x = addtwo(3, 5)
print x
• We match the number and
order of arguments and
parameters
Void (non-fruitful) Functions
• When a function does not return a value, we call it a "void" function
• Functions that return values are "fruitful" functions
• Void functions are "not fruitful"
To function or not to function...
• Organize your code into “paragraphs” - capture a complete thought
and “name it”
• Don’t repeat yourself - make it work once and then reuse it
• If something gets too long or complex, break up logical chunks and put
those chunks in functions
• Make a library of common stuff that you do over and over - perhaps
share this with your friends...
Exercise
Rewrite your pay computation with time-and-a-half
for overtime and create a function called computepay
which takes two parameters ( hours and rate).
Enter Hours: 45
Enter Rate: 10
Pay: 475.0
475 = 40 * 10 + 5 * 15
Summary
• Functions
• Built-In Functions
• Type conversion (int, float)
• Math functions (sin, sqrt)
• Try / except (again)
• Arguments
Reference
Python for Everybody,
Exploring Data Using Python3,
Dr. Charles R. Severance