COP 1000c Lab Assignment 7

profileamunoz1030
GaddisPythonChapter5Functions.ppt

Copyright © 2018 Pearson Education, Inc.

C H A P T E R 5

Functions

Copyright © 2018 Pearson Education, Inc.

Topics

  • Introduction to Functions
  • Defining and Calling a Void Function
  • Designing a Program to Use Functions
  • Local Variables
  • Passing Arguments to Functions
  • Global Variables and Global Constants
  • Turtle Graphics: Modularizing Code with Functions

Copyright © 2018 Pearson Education, Inc.

Topics (cont’d.)

  • Introduction to Value-Returning Functions: Generating Random Numbers
  • Writing Your Own Value-Returning Functions
  • The math Module
  • Storing Functions in Modules

Copyright © 2018 Pearson Education, Inc.

Introduction to Functions

  • Function: group of statements within a program that perform as specific task

Usually one task of a large program

Functions can be executed in order to perform overall program task

Known as divide and conquer approach

  • Modularized program: program wherein each task within the program is in its own function

Copyright © 2018 Pearson Education, Inc.

Copyright © 2018 Pearson Education, Inc.

Benefits of Modularizing a Program with Functions

  • The benefits of using functions include:

Simpler code

Code reuse

write the code once and call it multiple times

Better testing and debugging

Can test and debug each function individually

Faster development

Easier facilitation of teamwork

Different team members can write different functions

Copyright © 2018 Pearson Education, Inc.

Void Functions and Value-Returning Functions

  • A void function:

Simply executes the statements it contains and then terminates.

  • A value-returning function:

Executes the statements it contains, and then it returns a value back to the statement that called it.

The input, int, and float functions are examples of value-returning functions.

Copyright © 2018 Pearson Education, Inc.

Defining and Calling a Function

  • Functions are given names

Function naming rules:

Cannot use key words as a function name

Cannot contain spaces

First character must be a letter or underscore

All other characters must be a letter, number or underscore

Uppercase and lowercase characters are distinct

Copyright © 2018 Pearson Education, Inc.

Defining and Calling a Function (cont’d.)

  • Function name should be descriptive of the task carried out by the function

Often includes a verb

  • Function definition: specifies what function does

def function_name():

statement

statement

Copyright © 2018 Pearson Education, Inc.

Defining and Calling a Function (cont’d.)

  • Function header: first line of function

Includes keyword def and function name, followed by parentheses and colon

  • Block: set of statements that belong together as a group

Example: the statements included in a function

Copyright © 2018 Pearson Education, Inc.

Defining and Calling a Function (cont’d.)

  • Call a function to execute it

When a function is called:

Interpreter jumps to the function and executes statements in the block

Interpreter jumps back to part of program that called the function

Known as function return

Copyright © 2018 Pearson Education, Inc.

Defining and Calling a Function (cont’d.)

  • main function: called when the program starts

Calls other functions when they are needed

Defines the mainline logic of the program

Copyright © 2018 Pearson Education, Inc.

Indentation in Python

  • Each block must be indented

Lines in block must begin with the same number of spaces

Use tabs or spaces to indent lines in a block, but not both as this can confuse the Python interpreter

IDLE automatically indents the lines in a block

Blank lines that appear in a block are ignored

Copyright © 2018 Pearson Education, Inc.

Designing a Program to Use Functions

  • In a flowchart, function call shown as rectangle with vertical bars at each side

Function name written in the symbol

Typically draw separate flow chart for each function in the program

End terminal symbol usually reads Return

  • Top-down design: technique for breaking algorithm into functions

Copyright © 2018 Pearson Education, Inc.

Designing a Program to Use Functions (cont’d.)

  • Hierarchy chart: depicts relationship between functions

AKA structure chart

Box for each function in the program, Lines connecting boxes illustrate the functions called by each function

Does not show steps taken inside a function

  • Use input function to have program wait for user to press enter

Copyright © 2018 Pearson Education, Inc.

Designing a Program to Use Functions (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Local Variables

  • Local variable: variable that is assigned a value inside a function

Belongs to the function in which it was created

Only statements inside that function can access it, error will occur if another function tries to access the variable

  • Scope: the part of a program in which a variable may be accessed

For local variable: function in which created

Copyright © 2018 Pearson Education, Inc.

Local Variables (cont’d.)

  • Local variable cannot be accessed by statements inside its function which precede its creation
  • Different functions may have local variables with the same name

Each function does not see the other function’s local variables, so no confusion

Copyright © 2018 Pearson Education, Inc.

Passing Arguments to Functions

  • Argument: piece of data that is sent into a function

Function can use argument in calculations

When calling the function, the argument is placed in parentheses following the function name

Copyright © 2018 Pearson Education, Inc.

Passing Arguments to Functions (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Passing Arguments to Functions (cont’d.)

  • Parameter variable: variable that is assigned the value of an argument when the function is called

The parameter and the argument reference the same value

General format:

def function_name(parameter):

Scope of a parameter: the function in which the parameter is used

Copyright © 2018 Pearson Education, Inc.

Passing Arguments to Functions (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Passing Multiple Arguments

  • Python allows writing a function that accepts multiple arguments

Parameter list replaces single parameter

Parameter list items separated by comma

  • Arguments are passed by position to corresponding parameters

First parameter receives value of first argument, second parameter receives value of second argument, etc.

Copyright © 2018 Pearson Education, Inc.

Passing Multiple Arguments (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Making Changes to Parameters

  • Changes made to a parameter value within the function do not affect the argument

Known as pass by value

Provides a way for unidirectional communication between one function and another function

Calling function can communicate with called function

Copyright © 2018 Pearson Education, Inc.

Making Changes to Parameters (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Making Changes to Parameters (cont’d.)

  • Figure 5-18

The value variable passed to the change_me function cannot be changed by it

Copyright © 2018 Pearson Education, Inc.

Keyword Arguments

  • Keyword argument: argument that specifies which parameter the value should be passed to

Position when calling function is irrelevant

General Format:

function_name(parameter=value)

  • Possible to mix keyword and positional arguments when calling a function

Positional arguments must appear first

Copyright © 2018 Pearson Education, Inc.

Global Variables and Global Constants

  • Global variable: created by assignment statement written outside all the functions

Can be accessed by any statement in the program file, including from within a function

If a function needs to assign a value to the global variable, the global variable must be redeclared within the function

General format: global variable_name

Copyright © 2018 Pearson Education, Inc.

Global Variables and Global Constants (cont’d.)

  • Reasons to avoid using global variables:

Global variables making debugging difficult

Many locations in the code could be causing a wrong variable value

Functions that use global variables are usually dependent on those variables

Makes function hard to transfer to another program

Global variables make a program hard to understand

Copyright © 2018 Pearson Education, Inc.

Global Constants

  • Global constant: global name that references a value that cannot be changed

Permissible to use global constants in a program

To simulate global constant in Python, create global variable and do not re-declare it within functions

Copyright © 2018 Pearson Education, Inc.

Introduction to Value-Returning Functions: Generating Random Numbers

  • void function: group of statements within a program for performing a specific task

Call function when you need to perform the task

  • Value-returning function: similar to void function, returns a value

Value returned to part of program that called the function when function finishes executing

Copyright © 2018 Pearson Education, Inc.

Standard Library Functions and the import Statement

  • Standard library: library of pre-written functions that comes with Python

Library functions perform tasks that programmers commonly need

Example: print, input, range

Viewed by programmers as a “black box”

  • Some library functions built into Python interpreter

To use, just call the function

Copyright © 2018 Pearson Education, Inc.

Standard Library Functions and the import Statement (cont’d.)

  • Modules: files that stores functions of the standard library

Help organize library functions not built into the interpreter

Copied to computer when you install Python

  • To call a function stored in a module, need to write an import statement

Written at the top of the program

Format: import module_name

Copyright © 2018 Pearson Education, Inc.

Standard Library Functions and the import Statement (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Generating Random Numbers

  • Random number are useful in a lot of programming tasks
  • random module: includes library functions for working with random numbers
  • Dot notation: notation for calling a function belonging to a module

Format: module_name.function_name()

Copyright © 2018 Pearson Education, Inc.

Generating Random Numbers (cont’d.)

  • randint function: generates a random number in the range provided by the arguments

Returns the random number to part of program that called the function

Returned integer can be used anywhere that an integer would be used

You can experiment with the function in interactive mode

Copyright © 2018 Pearson Education, Inc.

Generating Random Numbers (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Generating Random Numbers (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Generating Random Numbers (cont’d.)

  • randrange function: similar to range function, but returns randomly selected integer from the resulting sequence

Same arguments as for the range function

  • random function: returns a random float in the range of 0.0 and 1.0

Does not receive arguments

  • uniform function: returns a random float but allows user to specify range

Copyright © 2018 Pearson Education, Inc.

Random Number Seeds

  • Random number created by functions in random module are actually pseudo-random numbers
  • Seed value: initializes the formula that generates random numbers

Need to use different seeds in order to get different series of random numbers

By default uses system time for seed

Can use random.seed() function to specify desired seed value

Copyright © 2018 Pearson Education, Inc.

Writing Your Own Value-Returning Functions

  • To write a value-returning function, you write a simple function and add one or more return statements

Format: return expression

The value for expression will be returned to the part of the program that called the function

The expression in the return statement can be a complex expression, such as a sum of two variables or the result of another value- returning function

Copyright © 2018 Pearson Education, Inc.

Writing Your Own Value-Returning Functions (cont’d.)

Copyright © 2018 Pearson Education, Inc.

How to Use Value-Returning Functions

  • Value-returning function can be useful in specific situations

Example: have function prompt user for input and return the user’s input

Simplify mathematical expressions

Complex calculations that need to be repeated throughout the program

  • Use the returned value

Assign it to a variable or use as an argument in another function

Copyright © 2018 Pearson Education, Inc.

Using IPO Charts

  • IPO chart: describes the input, processing, and output of a function

Tool for designing and documenting functions

Typically laid out in columns

Usually provide brief descriptions of input, processing, and output, without going into details

Often includes enough information to be used instead of a flowchart

Copyright © 2018 Pearson Education, Inc.

Using IPO Charts (cont’d.)

Copyright © 2018 Pearson Education, Inc.

Returning Strings

  • You can write functions that return strings
  • For example:

Copyright © 2018 Pearson Education, Inc.

Returning Boolean Values

  • Boolean function: returns either True or False

Use to test a condition such as for decision and repetition structures

Common calculations, such as whether a number is even, can be easily repeated by calling a function

Use to simplify complex input validation code

Copyright © 2018 Pearson Education, Inc.

Returning Multiple Values

  • In Python, a function can return multiple values

Specified after the return statement separated by commas

Format: return expression1,

expression2, etc.

When you call such a function in an assignment statement, you need a separate variable on the left side of the = operator to receive each returned value

Copyright © 2018 Pearson Education, Inc.

The math Module

  • math module: part of standard library that contains functions that are useful for performing mathematical calculations

Typically accept one or more values as arguments, perform mathematical operation, and return the result

Use of module requires an import math statement

Copyright © 2018 Pearson Education, Inc.

The math Module (cont’d.)

Copyright © 2018 Pearson Education, Inc.

The math Module (cont’d.)

  • The math module defines variables pi and e, which are assigned the mathematical values for pi and e

Can be used in equations that require these values, to get more accurate results

  • Variables must also be called using the dot notation

Example:

circle_area = math.pi * radius**2

Copyright © 2018 Pearson Education, Inc.

Storing Functions in Modules

  • In large, complex programs, it is important to keep code organized
  • Modularization: grouping related functions in modules

Makes program easier to understand, test, and maintain

Make it easier to reuse code for multiple different programs

Import the module containing the required function to each program that needs it

Copyright © 2018 Pearson Education, Inc.

Storing Functions in Modules (cont’d.)

  • Module is a file that contains Python code

Contains function definition but does not contain calls to the functions

Importing programs will call the functions

  • Rules for module names:

File name should end in .py

Cannot be the same as a Python keyword

  • Import module using import statement

Copyright © 2018 Pearson Education, Inc.

Menu Driven Programs

  • Menu-driven program: displays a list of operations on the screen, allowing user to select the desired operation

List of operations displayed on the screen is called a menu

  • Program uses a decision structure to determine the selected menu option and required operation

Typically repeats until the user quits

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Modularizing Code with Functions

  • Commonly needed turtle graphics operations can be stored in functions and then called whenever needed.
  • For example, the following function draws a square. The parameters specify the location, width, and color.

def square(x, y, width, color):

turtle.penup() # Raise the pen

turtle.goto(x, y) # Move to (X,Y)

turtle.fillcolor(color) # Set the fill color

turtle.pendown() # Lower the pen

turtle.begin_fill() # Start filling

for count in range(4): # Draw a square

turtle.forward(width)

turtle.left(90)

turtle.end_fill() # End filling

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Modularizing Code with Functions

  • The following code calls the previously shown square function to draw three squares:

square(100, 0, 50, 'red')

square(-150, -100, 200, 'blue')

square(-200, 150, 75, 'green')

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Modularizing Code with Functions

  • The following function draws a circle. The parameters specify the location, radius, and color.

def circle(x, y, radius, color):

turtle.penup() # Raise the pen

turtle.goto(x, y - radius) # Position the turtle

turtle.fillcolor(color) # Set the fill color

turtle.pendown() # Lower the pen

turtle.begin_fill() # Start filling

turtle.circle(radius) # Draw a circle

turtle.end_fill() # End filling

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Modularizing Code with Functions

  • The following code calls the previously shown circle function to draw three circles:

circle(0, 0, 100, 'red')

circle(-150, -75, 50, 'blue')

circle(-200, 150, 75, 'green')

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Modularizing Code with Functions

  • The following function draws a line. The parameters specify the starting and ending locations, and color.

def line(startX, startY, endX, endY, color):

turtle.penup() # Raise the pen

turtle.goto(startX, startY) # Move to the starting point

turtle.pendown() # Lower the pen

turtle.pencolor(color) # Set the pen color

turtle.goto(endX, endY) # Draw a square

Copyright © 2018 Pearson Education, Inc.

Turtle Graphics: Modularizing Code with Functions

  • The following code calls the previously shown line function to draw a triangle:

TOP_X = 0

TOP_Y = 100

BASE_LEFT_X = -100

BASE_LEFT_Y = -100

BASE_RIGHT_X = 100

BASE_RIGHT_Y = -100

line(TOP_X, TOP_Y, BASE_LEFT_X, BASE_LEFT_Y, 'red')

line(TOP_X, TOP_Y, BASE_RIGHT_X, BASE_RIGHT_Y, 'blue')

line(BASE_LEFT_X, BASE_LEFT_Y, BASE_RIGHT_X, BASE_RIGHT_Y, 'green')

Copyright © 2018 Pearson Education, Inc.

Summary

  • This chapter covered:

The advantages of using functions

The syntax for defining and calling a function

Methods for designing a program to use functions

Use of local variables and their scope

Syntax and limitations of passing arguments to functions

Global variables, global constants, and their advantages and disadvantages

Copyright © 2018 Pearson Education, Inc.

Summary (cont’d.)

Value-returning functions, including:

Writing value-returning functions

Using value-returning functions

Functions returning multiple values

Using library functions and the import statement

Modules, including:

The random and math modules

Grouping your own functions in modules

Modularizing Turtle Graphics Code