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
Functions Take in any number of parameters Possibly compute something Including no parameters! Possibly compute something Return a value Can be None If no return is specified, returns None
Function that takes in no parameters def answerToEverything(): return 42 This function takes in no parameters It does no computation Just returns a number
Function that returns nothing Let’s take a look at print() >>> result = print(“hi”) >>> print(result) None >>>
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
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
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
prime.py (continued) if isPrime: print("That number is prime") else: print("That number is NOT prime")
primeAsFunction.py def isPrime(number): for divisor in range(2,number): if number%divisor==0: return False return True Much smaller!
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
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)
Revisiting Design Documents Now that our future programming assignments will involve functions, I will expect different comments in your code
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 Inside the function using a docstring (triple quotes) Description – what your function does
Example Program Let’s say that we are writing a computer- computer 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
Example Program Let’s say that we are writing a computer- computer 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
Remember… Write your worksheet and function comments first Then fill in the code
Example Take a look at RPS.py to see what I am expecting.