SlideShare a Scribd company logo
1ARULKUMAR V AP/CSE SECE
2
Find the sum of integers from 1 to 10, from 20 to 37, and
from 35 to 49, respectively.
ARULKUMAR V AP/CSE SECE
3
sum = 0
for i in range(1, 10):
sum += i
print("Sum from 1 to 10 is", sum)
sum = 0
for i in range(20, 37):
sum += i
print("Sum from 20 to 37 is", sum)
sum = 0
for i in range(35, 49):
sum += i
print("Sum from 35 to 49 is", sum)
ARULKUMAR V AP/CSE SECE
4
sum = 0
for i in range(1, 10):
sum += i
print("Sum from 1 to 10 is", sum)
sum = 0
for i in range(20, 37):
sum += i
print("Sum from 20 to 37 is", sum)
sum = 0
for i in range(35, 49):
sum += i
print("Sum from 35 to 49 is", sum)
ARULKUMAR V AP/CSE SECE
5
def sum(i1, i2):
result = 0
for i in range(i1, i2):
result += i
return result
def main():
print("Sum from 1 to 10 is", sum(1, 10))
print("Sum from 20 to 37 is", sum(20, 37))
print("Sum from 35 to 49 is", sum(35, 49))
main() # Call the main function
ARULKUMAR V AP/CSE SECE
 To define functions (§6.2).
 To invoke value-returning functions (§6.3).
 To invoke functions that does not return a value (§6.4).
 To pass arguments by values (§6.5).
 To pass arguments by values (§6.6).
 To develop reusable code that is modular, easy to read,
easy to debug, and easy to maintain (§6.7).
 To create modules for reusing functions (§§6.7-6.8).
 To determine the scope of variables (§6.9).
 To define functions with default arguments (§6.10).
 To return multiple values from a function (§6.11).
 To apply the concept of function abstraction in
software development (§6.12).
 To design and implement functions using stepwise
refinement (§6.13).
 To simplify drawing programs using functions (§6.14).
6ARULKUMAR V AP/CSE SECE
7
A function is a collection of statements that are
grouped together to perform an operation.
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
function name formal parameters
return value
function
body
function
header
Define a function Invoke a function
z = max(x, y)
actual parameters
(arguments)
ARULKUMAR V AP/CSE SECE
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
function name formal parameters
return value
function
body
function
header
Define a function Invoke a function
z = max(x, y)
actual parameters
(arguments)
8
A function contains a header and body. The header begins with the
def keyword, followed by function’s name and parameters,
followed by a colon.
ARULKUMAR V AP/CSE SECE
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
function name formal parameters
return value
function
body
function
header
Define a function Invoke a function
z = max(x, y)
actual parameters
(arguments)
9
The variables defined in the function header are known as
formal parameters.
ARULKUMAR V AP/CSE SECE
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
function name formal parameters
return value
function
body
function
header
Define a function Invoke a function
z = max(x, y)
actual parameters
(arguments)
10
When a function is invoked, you pass a value to the parameter. This
value is referred to as actual parameter or argument.
ARULKUMAR V AP/CSE SECE
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
function name formal parameters
return value
function
body
function
header
Define a function Invoke a function
z = max(x, y)
actual parameters
(arguments)
11
A function may return a value using the return keyword.
ARULKUMAR V AP/CSE SECE
12
Testing the max function
This program demonstrates calling a function
max to return the largest of the int values
TestMax Run
ARULKUMAR V AP/CSE SECE
13
animation
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
14
animation
Invoke the main function
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
15
animation
i is now 5
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
16
animation
j is now 2
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
17
animation
invoke max(i, j)
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
18
animation
invoke max(i, j)
Pass the value of i to num1
Pass the value of j to num2
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
19
animation
(num1 > num2) is true
since num1 is 5 and num2
is 2
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
20
animation
result is now 5
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
21
animation
return result, which is 5
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
22
animation
return max(i, j) and assign
the return value to k
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
23
animation
Execute the print
statement
ARULKUMAR V AP/CSE SECE
def main():
i = 5
j = 2
k = max(i, j)
print("The maximum between",
i, "and", j, "is", k)
def max(num1, num2):
if num1 > num2:
result = num1
else:
result = num2
return result
pass int 5
pass int 2
main()
24
animation
Return to the caller
ARULKUMAR V AP/CSE SECE
25
(a) The main function
is invoked.
Space required for
the main function
j: 2
i: 5
(b) The max
function is invoked.
(c) The max function
is being executed.
Space required for
the main function
j:
i:
Space required for
the max function
num2:
num1:
int object
5
int object
2
This is a heap for
storing objects
stack stack
int object
5
int object
2
This is a heap for
storing objects
Space required for
the main function
j:
i:
Space required for
the max function
result:
num2:
num1:
stack
ARULKUMAR V AP/CSE SECE
26
Space required for
the main function
k:
j: 2
i: 5
(e) The main
function is finished.
int object
5
int object
2
This is a heap for
storing objects
stack stack
(d) The max function is
finished and the return
value is sent to k.
Stack is
now empty
ARULKUMAR V AP/CSE SECE
27
This type of function does not return a value. The
function performs some actions.
ReturnGradeFunction Run
PrintGradeFunction Run
ARULKUMAR V AP/CSE SECE
28
A function that does not return a value is known as
a void function in other programming languages
such as Python, C++, and C#. In Python, such
function returns a special None.
def sum(number1, number2):
total = number1 + number2
print(sum(1, 2))
ARULKUMAR V AP/CSE SECE
def nPrintln(message, n):
for i in range(0, n):
print(message)
29
Suppose you invoke the function using
nPrintln(“Welcome to Python”, 5)
What is the output?
Suppose you invoke the function using
nPrintln(“Computer Science”, 15)
What is the output?
What is wrong
nPrintln(4, “Computer Science”)
ARULKUMAR V AP/CSE SECE
def nPrintln(message, n):
for i in range(0, n):
print(message)
30
What is wrong
nPrintln(4, “Computer Science”)
Is this OK?
nPrintln(n = 4, message = “Computer Science”)
ARULKUMAR V AP/CSE SECE
31
In Python, all data are objects. A variable for an object is actually a
reference to the object. When you invoke a function with a
parameter, the reference value of the argument is passed to the
parameter. This is referred to as pass-by-value. For simplicity, we
say that the value of an argument is passed to a parameter when
invoking a function. Precisely, the value is actually a reference value
to the object.
Increment Run
If the argument is a number or a string, the argument is not affected,
regardless of the changes made to the parameter inside the function.
ARULKUMAR V AP/CSE SECE
Functions can be used to reduce redundant coding
and enable code reuse. Functions can also be used
to modularize code and improve the quality of the
program.
32
GCDFunction
Run
PrimeNumberFunction
Run
TestGCDFunction
ARULKUMAR V AP/CSE SECE
33
Write a function that converts a decimal integer
to a hexadecimal.
Decimal2HexConversion RunDecimal2HexConversion Run
ARULKUMAR V AP/CSE SECE
Scope: the part of the program
where the variable can be
referenced.
34
A variable created inside a function is referred to as a
local variable. Local variables can only be
accessed inside a function. The scope of a local
variable starts from its creation and continues to
the end of the function that contains the variable.
In Python, you can also use global variables. They
are created outside all functions and are accessible
to all functions in their scope.
ARULKUMAR V AP/CSE SECE
globalVar = 1
def f1():
localVar = 2
print(globalVar)
print(localVar)
f1()
print(globalVar)
print(localVar) # Out of scope. This gives an error
35ARULKUMAR V AP/CSE SECE
x = 1
def f1():
x = 2
print(x) # Displays 2
f1()
print(x) # Displays 1
36ARULKUMAR V AP/CSE SECE
x = eval(input("Enter a number: "))
if (x > 0):
y = 4
print(y) # This gives an error if y is not created
37ARULKUMAR V AP/CSE SECE
sum = 0
for i in range(0, 5):
sum += i
print(i)
38ARULKUMAR V AP/CSE SECE
x = 1
def increase():
global x
x = x + 1
print(x) # Displays 2
increase()
print(x) # Displays 2
39ARULKUMAR V AP/CSE SECE
Python allows you to define functions with
default argument values. The default values are
passed to the parameters when a function is
invoked without the arguments.
40
DefaultArgumentDemo Run
ARULKUMAR V AP/CSE SECE
Python allows a function to return multiple
values. Listing 5.9 defines a function that takes
two numbers and returns them in non-
descending order.
41
MultipleReturnValueDemo
Run
ARULKUMAR V AP/CSE SECE
42
TestRandomCharacter
Run
RandomCharacter
ARULKUMAR V AP/CSE SECE
You can think of the function body as a black box
that contains the detailed implementation for the
function.
43
Function Header
Function Body
Black Box
Optional arguments
for input
Optional return
value
ARULKUMAR V AP/CSE SECE
44
• Write a function once and reuse it anywhere.
• Information hiding. Hide the implementation
from the user.
• Reduce complexity.
ARULKUMAR V AP/CSE SECE
The concept of function abstraction can be
applied to the process of developing programs.
When writing a large program, you can use the
“divide and conquer” strategy, also known as
stepwise refinement, to decompose it into
subproblems. The subproblems can be further
decomposed into smaller, more manageable
problems.
45ARULKUMAR V AP/CSE SECE
Let us use the PrintCalendar example to
demonstrate the stepwise refinement
approach.
46
PrintCalendar Run
ARULKUMAR V AP/CSE SECE
47
printCalendar
(main)
readInput printMonth
getStartDay
printMonthTitle printMonthBody
getTotalNumOfDays
getNumOfDaysInMonth
getMonthName
isLeapYear
ARULKUMAR V AP/CSE SECE
48
printCalendar
(main)
readInput printMonth
getStartDay
printMonthTitle printMonthBody
getTotalNumOfDays
getNumOfDaysInMonth
getMonthName
isLeapYear
ARULKUMAR V AP/CSE SECE
49
printCalendar
(main)
readInput printMonth
getStartDay
printMonthTitle printMonthBody
getTotalNumOfDays
getNumOfDaysInMonth
getMonthName
isLeapYear
ARULKUMAR V AP/CSE SECE
50
printCalendar
(main)
readInput printMonth
getStartDay
printMonthTitle printMonthBody
getTotalNumOfDays
getNumOfDaysInMonth
getMonthName
isLeapYear
ARULKUMAR V AP/CSE SECE
51
printCalendar
(main)
readInput printMonth
getStartDay
printMonthTitle printMonthBody
getTotalNumOfDays
getNumOfDaysInMonth
getMonthName
isLeapYear
ARULKUMAR V AP/CSE SECE
52
printCalendar
(main)
readInput printMonth
getStartDay
printMonthTitle printMonthBody
getTotalNumOfDays
getNumOfDaysInMonth
getMonthName
isLeapYear
ARULKUMAR V AP/CSE SECE
53
A Skeleton for printCalendar
Top-down approach is to implement one function in the
structure chart at a time from the top to the bottom. Stubs
can be used for the functions waiting to be implemented.
A stub is a simple but incomplete version of a function.
The use of stubs enables you to test invoking the function
from a caller. Implement the main function first and then
use a stub for the printMonth function. For example, let
printMonth display the year and the month in the stub.
Thus, your program may begin like this:
ARULKUMAR V AP/CSE SECE
54
Bottom-up approach is to implement one function in the
structure chart at a time from the bottom to the top. For
each function implemented, write a test program to test it.
Both top-down and bottom-up functions are fine. Both
approaches implement the functions incrementally and
help to isolate programming errors and makes debugging
easy. Sometimes, they can be used together.
ARULKUMAR V AP/CSE SECE
55
UseCustomTurtleFunctions
def drawLine(x1, y1, x2, y2):
def writeString(s, x, y):
def drawPoint(x, y):
def drawCircle(x = 0, y = 0, radius = 10):
def drawRectangle(x = 0, y = 0, width = 10, height = 10):
UsefulTurtleFunctions
Run
ARULKUMAR V AP/CSE SECE

More Related Content

PPTX
Laziness, trampolines, monoids and other functional amenities: this is not yo...
DOCX
BIometrics- plotting DET and EER curve using Matlab
PPTX
Cs1123 8 functions
PDF
Excel function
PPTX
USE OF PRINT IN PYTHON PART 2
PDF
Gentle Introduction to Functional Programming
PPTX
INTRODUCTION TO FUNCTIONS IN PYTHON
PDF
Abstracting over Execution with Higher Kinded Types
Laziness, trampolines, monoids and other functional amenities: this is not yo...
BIometrics- plotting DET and EER curve using Matlab
Cs1123 8 functions
Excel function
USE OF PRINT IN PYTHON PART 2
Gentle Introduction to Functional Programming
INTRODUCTION TO FUNCTIONS IN PYTHON
Abstracting over Execution with Higher Kinded Types

What's hot (20)

PPT
PDF
Programming Fundamentals Arrays and Strings
PPTX
Recursion in c++
PPTX
Bayesian workflow with PyMC3 and ArviZ
PDF
An introduction to functional programming with go
PDF
Programming Fundamentals Decisions
PDF
Functional programming in Python
PDF
Java Programming Workshop
PPTX
statistics assignment help
PDF
Hello, i have an assignment ot change the java implementation of Bellman Ford...
PPTX
logistic regression with python and R
PPT
C++ functions presentation by DHEERAJ KATARIA
PPTX
XIX PUG-PE - Pygame game development
PDF
Introduction to Gura Programming Language
PDF
Functional Programming inside OOP? It’s possible with Python
PDF
6. function
PPTX
Image processing lab work
PDF
Phil Bartie QGIS PLPython
PPT
C++ functions
PDF
Atomically { Delete Your Actors }
Programming Fundamentals Arrays and Strings
Recursion in c++
Bayesian workflow with PyMC3 and ArviZ
An introduction to functional programming with go
Programming Fundamentals Decisions
Functional programming in Python
Java Programming Workshop
statistics assignment help
Hello, i have an assignment ot change the java implementation of Bellman Ford...
logistic regression with python and R
C++ functions presentation by DHEERAJ KATARIA
XIX PUG-PE - Pygame game development
Introduction to Gura Programming Language
Functional Programming inside OOP? It’s possible with Python
6. function
Image processing lab work
Phil Bartie QGIS PLPython
C++ functions
Atomically { Delete Your Actors }
Ad

Similar to 4. functions (20)

PPTX
ForLoopandUserDefinedFunctions.pptx
PPTX
JNTUK python programming python unit 3.pptx
PPTX
functions new.pptx
PPTX
Python Details Functions Description.pptx
PPTX
Function in Python function in python.pptx
PPTX
FUNCTIONS.pptx
PDF
Functions2.pdf
PDF
3-Python Functions.pdf in simple.........
PDF
Lecture 8.pdf
PPTX
Functions in Python Programming Language
PPTX
cbse class 12 Python Functions2 for class 12 .pptx
PPTX
Python functions
PPTX
Python_Functions_Modules_ User define Functions-
PPTX
Working with functions.pptx. Hb.
PPTX
04. WORKING WITH FUNCTIONS-2 (1).pptx
PDF
Python Course Lecture Defining Functions
PPTX
Working with functions the minumum ppt.pptx
PDF
Python - Lecture 2
PPTX
Python_Functions_Unit1.pptx
PPTX
CHAPTER 01 FUNCTION in python class 12th.pptx
ForLoopandUserDefinedFunctions.pptx
JNTUK python programming python unit 3.pptx
functions new.pptx
Python Details Functions Description.pptx
Function in Python function in python.pptx
FUNCTIONS.pptx
Functions2.pdf
3-Python Functions.pdf in simple.........
Lecture 8.pdf
Functions in Python Programming Language
cbse class 12 Python Functions2 for class 12 .pptx
Python functions
Python_Functions_Modules_ User define Functions-
Working with functions.pptx. Hb.
04. WORKING WITH FUNCTIONS-2 (1).pptx
Python Course Lecture Defining Functions
Working with functions the minumum ppt.pptx
Python - Lecture 2
Python_Functions_Unit1.pptx
CHAPTER 01 FUNCTION in python class 12th.pptx
Ad

More from PhD Research Scholar (20)

PPTX
Quiz servlet
PPTX
servlet db connectivity
PPTX
2.java script dom
PPTX
1.java script
PPTX
Quiz javascript
PPTX
Thread&multithread
PPTX
Streams&io
PPTX
PPTX
Interface in java
PPTX
Inner classes in java
PPTX
PPTX
Exception handling
PPTX
Abstract class
PPTX
7. tuples, set & dictionary
PPTX
Quiz servlet
servlet db connectivity
2.java script dom
1.java script
Quiz javascript
Thread&multithread
Streams&io
Interface in java
Inner classes in java
Exception handling
Abstract class
7. tuples, set & dictionary

Recently uploaded (20)

PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Cell Types and Its function , kingdom of life
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
master seminar digital applications in india
PDF
RMMM.pdf make it easy to upload and study
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Classroom Observation Tools for Teachers
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Insiders guide to clinical Medicine.pdf
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
O7-L3 Supply Chain Operations - ICLT Program
PPH.pptx obstetrics and gynecology in nursing
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Module 4: Burden of Disease Tutorial Slides S2 2025
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Cell Types and Its function , kingdom of life
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
master seminar digital applications in india
RMMM.pdf make it easy to upload and study
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Classroom Observation Tools for Teachers
Final Presentation General Medicine 03-08-2024.pptx
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Insiders guide to clinical Medicine.pdf

4. functions

  • 2. 2 Find the sum of integers from 1 to 10, from 20 to 37, and from 35 to 49, respectively. ARULKUMAR V AP/CSE SECE
  • 3. 3 sum = 0 for i in range(1, 10): sum += i print("Sum from 1 to 10 is", sum) sum = 0 for i in range(20, 37): sum += i print("Sum from 20 to 37 is", sum) sum = 0 for i in range(35, 49): sum += i print("Sum from 35 to 49 is", sum) ARULKUMAR V AP/CSE SECE
  • 4. 4 sum = 0 for i in range(1, 10): sum += i print("Sum from 1 to 10 is", sum) sum = 0 for i in range(20, 37): sum += i print("Sum from 20 to 37 is", sum) sum = 0 for i in range(35, 49): sum += i print("Sum from 35 to 49 is", sum) ARULKUMAR V AP/CSE SECE
  • 5. 5 def sum(i1, i2): result = 0 for i in range(i1, i2): result += i return result def main(): print("Sum from 1 to 10 is", sum(1, 10)) print("Sum from 20 to 37 is", sum(20, 37)) print("Sum from 35 to 49 is", sum(35, 49)) main() # Call the main function ARULKUMAR V AP/CSE SECE
  • 6.  To define functions (§6.2).  To invoke value-returning functions (§6.3).  To invoke functions that does not return a value (§6.4).  To pass arguments by values (§6.5).  To pass arguments by values (§6.6).  To develop reusable code that is modular, easy to read, easy to debug, and easy to maintain (§6.7).  To create modules for reusing functions (§§6.7-6.8).  To determine the scope of variables (§6.9).  To define functions with default arguments (§6.10).  To return multiple values from a function (§6.11).  To apply the concept of function abstraction in software development (§6.12).  To design and implement functions using stepwise refinement (§6.13).  To simplify drawing programs using functions (§6.14). 6ARULKUMAR V AP/CSE SECE
  • 7. 7 A function is a collection of statements that are grouped together to perform an operation. def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result function name formal parameters return value function body function header Define a function Invoke a function z = max(x, y) actual parameters (arguments) ARULKUMAR V AP/CSE SECE
  • 8. def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result function name formal parameters return value function body function header Define a function Invoke a function z = max(x, y) actual parameters (arguments) 8 A function contains a header and body. The header begins with the def keyword, followed by function’s name and parameters, followed by a colon. ARULKUMAR V AP/CSE SECE
  • 9. def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result function name formal parameters return value function body function header Define a function Invoke a function z = max(x, y) actual parameters (arguments) 9 The variables defined in the function header are known as formal parameters. ARULKUMAR V AP/CSE SECE
  • 10. def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result function name formal parameters return value function body function header Define a function Invoke a function z = max(x, y) actual parameters (arguments) 10 When a function is invoked, you pass a value to the parameter. This value is referred to as actual parameter or argument. ARULKUMAR V AP/CSE SECE
  • 11. def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result function name formal parameters return value function body function header Define a function Invoke a function z = max(x, y) actual parameters (arguments) 11 A function may return a value using the return keyword. ARULKUMAR V AP/CSE SECE
  • 12. 12 Testing the max function This program demonstrates calling a function max to return the largest of the int values TestMax Run ARULKUMAR V AP/CSE SECE
  • 13. 13 animation def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() ARULKUMAR V AP/CSE SECE
  • 14. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 14 animation Invoke the main function ARULKUMAR V AP/CSE SECE
  • 15. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 15 animation i is now 5 ARULKUMAR V AP/CSE SECE
  • 16. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 16 animation j is now 2 ARULKUMAR V AP/CSE SECE
  • 17. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 17 animation invoke max(i, j) ARULKUMAR V AP/CSE SECE
  • 18. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 18 animation invoke max(i, j) Pass the value of i to num1 Pass the value of j to num2 ARULKUMAR V AP/CSE SECE
  • 19. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 19 animation (num1 > num2) is true since num1 is 5 and num2 is 2 ARULKUMAR V AP/CSE SECE
  • 20. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 20 animation result is now 5 ARULKUMAR V AP/CSE SECE
  • 21. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 21 animation return result, which is 5 ARULKUMAR V AP/CSE SECE
  • 22. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 22 animation return max(i, j) and assign the return value to k ARULKUMAR V AP/CSE SECE
  • 23. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 23 animation Execute the print statement ARULKUMAR V AP/CSE SECE
  • 24. def main(): i = 5 j = 2 k = max(i, j) print("The maximum between", i, "and", j, "is", k) def max(num1, num2): if num1 > num2: result = num1 else: result = num2 return result pass int 5 pass int 2 main() 24 animation Return to the caller ARULKUMAR V AP/CSE SECE
  • 25. 25 (a) The main function is invoked. Space required for the main function j: 2 i: 5 (b) The max function is invoked. (c) The max function is being executed. Space required for the main function j: i: Space required for the max function num2: num1: int object 5 int object 2 This is a heap for storing objects stack stack int object 5 int object 2 This is a heap for storing objects Space required for the main function j: i: Space required for the max function result: num2: num1: stack ARULKUMAR V AP/CSE SECE
  • 26. 26 Space required for the main function k: j: 2 i: 5 (e) The main function is finished. int object 5 int object 2 This is a heap for storing objects stack stack (d) The max function is finished and the return value is sent to k. Stack is now empty ARULKUMAR V AP/CSE SECE
  • 27. 27 This type of function does not return a value. The function performs some actions. ReturnGradeFunction Run PrintGradeFunction Run ARULKUMAR V AP/CSE SECE
  • 28. 28 A function that does not return a value is known as a void function in other programming languages such as Python, C++, and C#. In Python, such function returns a special None. def sum(number1, number2): total = number1 + number2 print(sum(1, 2)) ARULKUMAR V AP/CSE SECE
  • 29. def nPrintln(message, n): for i in range(0, n): print(message) 29 Suppose you invoke the function using nPrintln(“Welcome to Python”, 5) What is the output? Suppose you invoke the function using nPrintln(“Computer Science”, 15) What is the output? What is wrong nPrintln(4, “Computer Science”) ARULKUMAR V AP/CSE SECE
  • 30. def nPrintln(message, n): for i in range(0, n): print(message) 30 What is wrong nPrintln(4, “Computer Science”) Is this OK? nPrintln(n = 4, message = “Computer Science”) ARULKUMAR V AP/CSE SECE
  • 31. 31 In Python, all data are objects. A variable for an object is actually a reference to the object. When you invoke a function with a parameter, the reference value of the argument is passed to the parameter. This is referred to as pass-by-value. For simplicity, we say that the value of an argument is passed to a parameter when invoking a function. Precisely, the value is actually a reference value to the object. Increment Run If the argument is a number or a string, the argument is not affected, regardless of the changes made to the parameter inside the function. ARULKUMAR V AP/CSE SECE
  • 32. Functions can be used to reduce redundant coding and enable code reuse. Functions can also be used to modularize code and improve the quality of the program. 32 GCDFunction Run PrimeNumberFunction Run TestGCDFunction ARULKUMAR V AP/CSE SECE
  • 33. 33 Write a function that converts a decimal integer to a hexadecimal. Decimal2HexConversion RunDecimal2HexConversion Run ARULKUMAR V AP/CSE SECE
  • 34. Scope: the part of the program where the variable can be referenced. 34 A variable created inside a function is referred to as a local variable. Local variables can only be accessed inside a function. The scope of a local variable starts from its creation and continues to the end of the function that contains the variable. In Python, you can also use global variables. They are created outside all functions and are accessible to all functions in their scope. ARULKUMAR V AP/CSE SECE
  • 35. globalVar = 1 def f1(): localVar = 2 print(globalVar) print(localVar) f1() print(globalVar) print(localVar) # Out of scope. This gives an error 35ARULKUMAR V AP/CSE SECE
  • 36. x = 1 def f1(): x = 2 print(x) # Displays 2 f1() print(x) # Displays 1 36ARULKUMAR V AP/CSE SECE
  • 37. x = eval(input("Enter a number: ")) if (x > 0): y = 4 print(y) # This gives an error if y is not created 37ARULKUMAR V AP/CSE SECE
  • 38. sum = 0 for i in range(0, 5): sum += i print(i) 38ARULKUMAR V AP/CSE SECE
  • 39. x = 1 def increase(): global x x = x + 1 print(x) # Displays 2 increase() print(x) # Displays 2 39ARULKUMAR V AP/CSE SECE
  • 40. Python allows you to define functions with default argument values. The default values are passed to the parameters when a function is invoked without the arguments. 40 DefaultArgumentDemo Run ARULKUMAR V AP/CSE SECE
  • 41. Python allows a function to return multiple values. Listing 5.9 defines a function that takes two numbers and returns them in non- descending order. 41 MultipleReturnValueDemo Run ARULKUMAR V AP/CSE SECE
  • 43. You can think of the function body as a black box that contains the detailed implementation for the function. 43 Function Header Function Body Black Box Optional arguments for input Optional return value ARULKUMAR V AP/CSE SECE
  • 44. 44 • Write a function once and reuse it anywhere. • Information hiding. Hide the implementation from the user. • Reduce complexity. ARULKUMAR V AP/CSE SECE
  • 45. The concept of function abstraction can be applied to the process of developing programs. When writing a large program, you can use the “divide and conquer” strategy, also known as stepwise refinement, to decompose it into subproblems. The subproblems can be further decomposed into smaller, more manageable problems. 45ARULKUMAR V AP/CSE SECE
  • 46. Let us use the PrintCalendar example to demonstrate the stepwise refinement approach. 46 PrintCalendar Run ARULKUMAR V AP/CSE SECE
  • 53. 53 A Skeleton for printCalendar Top-down approach is to implement one function in the structure chart at a time from the top to the bottom. Stubs can be used for the functions waiting to be implemented. A stub is a simple but incomplete version of a function. The use of stubs enables you to test invoking the function from a caller. Implement the main function first and then use a stub for the printMonth function. For example, let printMonth display the year and the month in the stub. Thus, your program may begin like this: ARULKUMAR V AP/CSE SECE
  • 54. 54 Bottom-up approach is to implement one function in the structure chart at a time from the bottom to the top. For each function implemented, write a test program to test it. Both top-down and bottom-up functions are fine. Both approaches implement the functions incrementally and help to isolate programming errors and makes debugging easy. Sometimes, they can be used together. ARULKUMAR V AP/CSE SECE
  • 55. 55 UseCustomTurtleFunctions def drawLine(x1, y1, x2, y2): def writeString(s, x, y): def drawPoint(x, y): def drawCircle(x = 0, y = 0, radius = 10): def drawRectangle(x = 0, y = 0, width = 10, height = 10): UsefulTurtleFunctions Run ARULKUMAR V AP/CSE SECE