Session Twenty Five

Download Report

Transcript Session Twenty Five

More on Functions (Part 2)
Intro to Computer Science
CS1510, Section 2
Dr. Sarah Diesburg
What are functions?

Little pieces of code that we can write and
invoke by name


Reusable
General
2
Functions

Take in any number of parameters



Including no parameters!
Possibly compute something
Return a value


Can be None
If no return is specified, returns None
3
Function that takes in no
parameters
def answerToEverything():
return 42



This function takes in no parameters
It does no computation
Just returns a number
4
Function that returns nothing
Let’s take a look at print()
>>> result = print(“hi”)
>>> print(result)
None
>>>

5
None

None is a special value in Python that
represents nothing


The first letter of None must be capitalized – it will
turn orange
Use it when you have nothing to return

Like if one of the parameters was invalid
6
Functions



Remember, a function stops running when it
hits a return statement
Often times it is easier to write something as
a function than as a script by itself
Let’s look at our old script to find a prime
number
7
prime.py
number = int(input("Please enter a number greater than 2. "))
isPrime = True #break out condition
divisor = 2
while divisor<number and isPrime:
if number%divisor==0:
print("The number",number,"is divisible by",\
divisor)
isPrime=False # Going to break out
divisor=divisor+1
8
prime.py (continued)
if isPrime:
print("That number is prime")
else:
print("That number is NOT prime")
9
primeAsFunction.py
def isPrime(number):
for divisor in range(2,number):
if number%divisor==0:
return False
return True

Much smaller!
10
Functions can also call themselves


One function can invoke another function
Let’s take a look at functionFun.py
11
Future Programming Assignments


I will ask you to write python files with only
functions in them
That’s ok – you can call functions directly
from IDLE


Step 1: Run your python file (F5)
At interpreter, type your function name with
parameters
12
Example
Take functionFun.py and deleted all the code
starting at
# Running the main part of the program
 Save
 Run the file
 Type
>>> mySum = addNumToSelf(4)
>>>print(mySum)

13
Revisiting Design Documents

Now that our future programming
assignments will involve functions, I will
expect more from your design documents
and comments in your code
14
Design Documents

Your design document should have the
following sections

Small “users manual”



General Description – Tell me generally what the
program does in a sentence or two
How to run program – Tell me how to run the program,
including types of inputs and outputs expected
New design document

Paragraph - Tell me how your program works, broken
down into major steps
15
Code Comments


Still do what you are already doing
Before each function, list




Function name
Inputs – inputs parameters to your function and
their types
Output – what your function returns and its type
Description – what your function does
16
Example Program

Let’s say that we are writing a computercomputer rock/paper/scissors game with 4
functions



Function getWeapon(): no inputs, gets random
weapon from “r”, “p”, “s”, returns “r”,”p”,”s”
Function isTie(one,two): inputs weapons from
both players, returns true if tie and false otherwise
Function playerOneWins(one,two): inputs
weapons from both players, returns true if player
one wins and false otherwise
17
Example Program

Let’s say that we are writing a computercomputer rock/paper/scissors game with 4
functions

Function rps(numberOfGames): input is the
number of games (int), plays rock paper scissors
with two computer players, and returns the result
of the number of player1 wins, player2 wins, and
ties in a string
18
Remember…

Write your design document and function
comments first

Then fill in the code
19
Example

Take a look at RPS.py and DesignOfRPS.txt
to see what I am expecting.
20