Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
70 views

04 Python - Functions

This document discusses functions in Python. It covers: 1) What functions are - reusable blocks of code that take arguments and return results. 2) How to define a function using the def keyword. 3) How to call/invoke a function by using the function name and passing arguments. 4) Common uses of functions like built-in functions, user-defined functions, and how functions allow code reuse.

Uploaded by

prashantdpatke
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views

04 Python - Functions

This document discusses functions in Python. It covers: 1) What functions are - reusable blocks of code that take arguments and return results. 2) How to define a function using the def keyword. 3) How to call/invoke a function by using the function name and passing arguments. 4) Common uses of functions like built-in functions, user-defined functions, and how functions allow code reuse.

Uploaded by

prashantdpatke
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Functions

Chapter 4

Python for Informatics: Exploring Information


www.pythonlearn.com
reachus@cloudxlab.com
Stored (and reused) Steps
def
thing(): Program:
print ('Hello') Output:
print (‘Fun’) def thing():
print ('Hello')
print ('Fun') Hello
thing() Fun
thing()
print ('Zip') Zip
print ('Zip') thing()
Hello
Fun
thing()
We call these reusable pieces of code “functions”
reachus@cloudxlab.com
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)

reachus@cloudxlab.com
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,


parentheses, and arguments in an expression

reachus@cloudxlab.com
Argument

big = max('Hello world')


Assignment
'w'

Result
>>> big = max('Hello world')
>>> print (big)
w
>>> tiny = min('Hello world')
>>> print (tiny)

>>>

reachus@cloudxlab.com
Max Function
A function is some stored
>>> big = max('Hello world') code that we use. A
>>> print (big) function takes some
w
input and produces an
output.

'Hello world' max() 'w'


(a string) function (a string)

Guido wrote this code


reachus@cloudxlab.com
Max Function
A function is some stored
>>> big = max('Hello world') code that we use. A
>>> print (big) function takes some
w
input and produces an
output.

def max(inp):
blah
'Hello world' blah 'w'
(a string) for x in y:
blah
(a string)
blah

Guido wrote this code


reachus@cloudxlab.com
Type
Conversions >>> print (float(99) / 100)
0.99
>>> i = 42
• When you put an integer >>> type(i)
<type 'int'>
and floating point in an >>> f = float(i)
expression, the integer is >>> print (f)
implicitly converted to a 42.0
float >>> type(f)
<type 'float'>
>>> print (1 + 2 * float(3) / 4 - 5)
• You can control this with the -2.5
built-in functions int() and >>>
float()
reachus@cloudxlab.com
String >>> sval = '123'
>>> type(sval)

Conversions <type 'str'>


>>> print (sval + 1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str'
• You can also use int() and and 'int'
float() to convert between >>> ival = int(sval)
>>> type(ival)
strings and integers <type 'int'>
>>> print (ival + 1)
• You will get an error if the 124
>>> 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()

reachus@cloudxlab.com
Building our Own Functions
• We create a new function using the def keyword followed by optional
parameters in parentheses

• 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.')

reachus@cloudxlab.com
print ("I'm a lumberjack, and I'm okay.")
print_lyrics(): print ('I sleep all night and I work all day.')

x = 5
print ('Hello')

def print_lyrics():
print ("I'm a lumberjack, and I'm okay.")
Hello
print ('I sleep all night and I work all day.') Yo
print ('Yo')
7
x = x + 2
print (x)

reachus@cloudxlab.com
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

reachus@cloudxlab.com
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
print (x) Yo
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.
7

reachus@cloudxlab.com
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 parentheses after the name of the function

big = max('Hello world')


Argument
reachus@cloudxlab.com
Parameters
>>> def greet(lang):
A parameter is a variable which ...
...
if lang == 'es':
print ('Hola')
we use in the function ... elif lang == 'fr':
... print ('Bonjour')
definition. It is a “handle” that ... else:
allows the code in the function ... print ('Hello')
...
to access the arguments for a >>> greet('en')
particular function invocation. Hello
>>> greet('es')
Hola
>>> greet('fr')
Bonjour
>>>

reachus@cloudxlab.com
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"

print (greet(), "Glenn") Hello Glenn


print (greet(), "Sally") Hello Sally

reachus@cloudxlab.com
Return Value
>>> def greet(lang):
... if lang == 'es':
• A “fruitful” function is one ... return 'Hola'
that produces a result (or ...
...
elif lang == 'fr':
return 'Bonjour'
return value) ... else:
... return 'Hello'
• The return statement ends ...
>>> print (greet('en'),'Glenn')
the function execution and Hello Glenn
“sends back” the result of >>> print (greet('es'),'Sally')
Hola Sally
the function >>> print (greet('fr'),'Michael')
Bonjour Michael
>>>

reachus@cloudxlab.com
Arguments, Parameters, and Results
>>> big = max('Hello world')
>>> print (big)
Parameter
w
def max(inp):
blah
blah
'Hello world' for x in y:
'w'
blah
blah
Argument return 'w'
Result

reachus@cloudxlab.com
Multiple Parameters / Arguments
• We can define more than
one parameter in the
function definition
def addtwo(a, b):
added = a + b
• We simply add more return added
arguments when we call
the function x = addtwo(3, 5)
print (x)
• We match the number and 8
order of arguments and
parameters
reachus@cloudxlab.com
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”

reachus@cloudxlab.com
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 it up into 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...

reachus@cloudxlab.com
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

reachus@cloudxlab.com
Summary
• Functions • Arguments
• Built-In Functions • Results (fruitful functions)
> Type conversion (int, float) • Void (non-fruitful) functions
> String conversions • Why use functions?
• Parameters

reachus@cloudxlab.com
Acknowledgements / Contributions
These slides are Copyright 2010- Charles R. Severance
...
(www.dr-chuck.com) of the University of Michigan School of
Information and open.umich.edu and made available under a
Creative Commons Attribution 4.0 License. Please maintain this
last slide in all copies of the document to comply with the
attribution requirements of the license. If you make a change,
feel free to add your name and organization to the list of
contributors on this page as you republish the materials.

Initial Development: Charles Severance, University of Michigan


School of Information

… Insert new Contributors and Translators here

You might also like