• No results found

How To Understand The Details Of A Function In Python (For Beginners)

N/A
N/A
Protected

Academic year: 2021

Share "How To Understand The Details Of A Function In Python (For Beginners)"

Copied!
23
0
0

Loading.... (view fulltext now)

Full text

(1)

Python Programming:

An Introduction to

Computer Science

Chapter 6

(2)

Objectives

 To understand why programmers divide

programs up into sets of cooperating functions.

 To be able to define new functions in

Python.

 To understand the details of function

(3)

Objectives (cont.)

 To write programs that use functions to

reduce code duplication and increase program modularity.

(4)

The Function of Functions

 So far, we’ve seen three different types

of functions:

 Our programs comprise a single function

called main().

 Built-in Python functions (round, abs)  Functions from the standard libraries

(5)

The Function of Functions

 Having similar or identical code in more

than one place has some drawbacks.

 Issue one: writing the same code twice or

more.

 Issue two: This same code must be

maintained in two separate places.

 Functions can be used to reduce code

duplication and make programs more easily understood and maintained.

(6)

Functions, Informally

 A function is like a

subprogram

, a small

program inside of a program.

 The basic idea – we write a sequence of

statements and then give that sequence a name. We can then execute this

sequence at any time by referring to the name.

(7)

Functions, Informally

 The part of the program that creates a

function is called a

function definition

.

 When the function is used in a

program, we say the definition is

called

or

invoked

.

(8)

Functions, Informally

Example of function (intentional bug)

# Using a main method like the book

# This code has an intentional bug def main():

a, b, c = eval(input("Enter 3 numbers: "))

if(a >= b >= c): max = a; if(b >= a >= c): max = b; if(c >= b >= a): max = a;

print('Max: ', max) main()

(9)

Functions, Informally

 Let's put the buggy ifs in a new function

def maxOf3(a, b, c): if(a >= b >= c): max = a; if(b >= a >= c): max = b; if(c >= b >= a): max = a; return max def main():

(10)

Functions, Informally

Change main to test the new function

def main():

# All permutations of three unique numbers

print('3? ', maxOf3(1, 2, 3)) print('3? ', maxOf3(1, 3, 2)) print('3? ', maxOf3(2, 3, 1)) print('3? ', maxOf3(2, 1, 3)) # The other two?

(11)

Functions, Informally

 Creating this function captured the logic  If we can get this function working, it

would be nice.

(12)

Functions and Parameters:

The Details

 Each function is its own little subprogram.

The variables used inside of a function are

local to that function, even if they happen to have the same name as variables that appear inside of another function.

 The only way for a function to see a variable

or to get a value from another place is for that variable to be passed as a parameter.

(13)

Functions and Parameters:

The Details

 A function definition looks like this:

def <name>(<formal-parameters>): <body>

 The name of the function must be an

identifier

 Formal-parameters is a possibly empty

(14)

Functions and Parameters:

The Details

 Formal parameters, like all variables

used in the function, are only accessible in the body of the function. Variables

with identical names elsewhere in the program are distinct from the formal parameters and variables inside of the function body.

(15)

Functions and Parameters:

The Details

 A function is called by using its name

followed by a list of

actual parameters

or

arguments

1.

<name>(<arguments>)

 When Python comes to a function call,

(16)

Functions and Parameters:

The Details

 The calling program suspends execution at

the point of the call.

 The formal parameters of the function get

assigned the values supplied by the actual parameters in the call.

 The body of the function is executed.  Control returns to the point just after

(17)

Functions and Parameters:

The Details

 Trace through the current program with a

main method that tests maxOf3

 Then move maxOf3 into another file named

myFunctions.py

 Leave the main method to test, but we need

to now import that function

(18)

Functions and Paramters: The

Details

 One thing not addressed in this

example was multiple parameters. In this case the formal and actual

parameters are matched up based on

position

, e.g. the first actual parameter is assigned to the first formal

parameter, the second actual parameter is assigned to the second formal

(19)

Getting Results from a

Function

 Passing parameters provides a

mechanism for initializing the variables in a function.

 Parameters act as inputs to a function.  We can call a function many times and

get different results by changing its parameters.

(20)

Functions That Return Values

 We’ve already seen numerous

examples of functions that return values to the caller.

discRt = math.sqrt(b*b – 4*a*c)

 The value b*b – 4*a*c is the actual

parameter of math.sqrt.

 We say sqrt

returns

the square root of

(21)

Functions That Return Values

 This function returns the square of a number:

def square(x): return x*x

 When Python encounters return, it exits the

function and returns control to the point where the function was called.

 In addition, the value(s) provided in the return statement are sent back to the

(22)

Functions That Return Values

 >>> square(3) 9  >>> print(square(4)) 16  >>> x = 5 >>> y = square(x) >>> print(y) 25  >>> print(square(x) + square(3)) 34

(23)

Consider CodingBats

 http://codingbat.com/python

 In class, write the answers to those

References

Related documents

This essay asserts that to effectively degrade and ultimately destroy the Islamic State of Iraq and Syria (ISIS), and to topple the Bashar al-Assad’s regime, the international

Standardization of herbal raw drugs include passport data of raw plant drugs, botanical authentification, microscopic &amp; molecular examination, identification of

Field experiments were conducted at Ebonyi State University Research Farm during 2009 and 2010 farming seasons to evaluate the effect of intercropping maize with

Since the knowledge regarding the role of enteroviruses in young neonates with sepsis is lim- ited in our region, therefore, this study was aimed to determine the etiologic agents

The Quarterly financial statistics Survey covers a sample of private enterprises operating in the formal non-agricultural business sector of the South African economy. It

19% serve a county. Fourteen per cent of the centers provide service for adjoining states in addition to the states in which they are located; usually these adjoining states have

In this the machine has ability to recognize and classify After constructing the features vector, one algorithm that classified the data that have been obtained

The upper section of the drawing (above the spring of tiburio ) is open to various interpretations, due to the difficulty to distinguish between sectioned and/or