0% found this document useful (0 votes)
103 views

Functions: Python For Informatics: Exploring Information

The document discusses Python functions including defining functions, parameters, arguments, return values, and examples of built-in functions. It covers the basics of defining functions with the def keyword, calling functions, and passing arguments to functions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views

Functions: Python For Informatics: Exploring Information

The document discusses Python functions including defining functions, parameters, arguments, return values, and examples of built-in functions. It covers the basics of defining functions with the def keyword, calling functions, and passing arguments to functions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Functions

Chapter 4

Python for Informatics: Exploring Information


www.pythonlearn.com
Stored (and reused) Steps
def thing()
Program:
:
print 'Hello' Output:
def thing():
print 'Fun' 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”
Python Functions
• There are two kinds of functions in Python.

> Built-in functions that are provided as part of Python -


raw_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,


parentheses, and arguments in an expression
Argumen
t

big = max('Hello world')


Assignment
'w'

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

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

'w'
'Hello world' max() (a
(a string) function string)

Guido wrote this


code
Max Function
A function is some
>>> big = max('Hello world') stored code that we
>>> print big
use. A function takes
w
some input and
produces an output.
def max(inp):
blah 'w'
'Hello world' blah
(a
for x in y:
(a string) blah string)
blah

Guido wrote this


code
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
>>> type(f)
float <type 'float'>
>>> print 1 + 2 * float(3) / 4 - 5
• You can control this with -2.5
the built-in functions int() >>>
and float()
String >>> sval = '123'
>>> type(sval)
<type 'str'>
Conversions >>> 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()
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.'
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
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 parentheses after the name of the


function
big = max('Hello
world') Argumen
t
Parameters >>> def greet(lang):
... if lang == 'es':
A parameter is a variable ... print 'Hola'
which we use in the function ... elif lang == 'fr':
... print 'Bonjour'
definition. It is a “handle” that ... else:
... print 'Hello'
allows the code in the ...
function to access the >>> greet('en')
Hello
arguments for a particular >>> greet('es')
function invocation. Hola
>>> greet('fr')
Bonjour
>>>
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
Return Value
>>> def greet(lang):
... if lang == 'es':
• A “fruitful” function is one ... return 'Hola'
that produces a result (or ... elif lang == 'fr':
return value) ... return 'Bonjour'
... else:
... return 'Hello'
• The return statement ...
ends the function >>> print greet('en'),'Glenn'
Hello Glenn
execution and “sends >>> print greet('es'),'Sally'
back” the result of the Hola Sally
>>> print greet('fr'),'Michael'
function Bonjour Michael
>>>
Arguments, Parameters, and
Results
>>> big = max('Hello world') Paramete
>>> print big r
w
def max(inp):
blah
blah
'Hello world' for x in y: 'w'
blah
Argumen blah
return 'w' Resul
t
t
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 order of arguments 8
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 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...
Exercis
e

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 • Arguments
• Built-In Functions • Results (fruitful functions)
> Type conversion (int, • Void (non-fruitful) functions
float)
• Why use functions?
> String conversions
• Parameters
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