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

Python Functions

The document discusses functions in Python, including what they are, why they are useful, and how to define them. Functions allow reusable blocks of code to be stored and called multiple times. Parameters define the inputs to a function while arguments are the specific values passed into the function call; functions may optionally return a value.

Uploaded by

Nivedha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Python Functions

The document discusses functions in Python, including what they are, why they are useful, and how to define them. Functions allow reusable blocks of code to be stored and called multiple times. Parameters define the inputs to a function while arguments are the specific values passed into the function call; functions may optionally return a value.

Uploaded by

Nivedha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

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

You might also like