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 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 11 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) 12 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 13 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 14 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 15 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 16 Remember… Write your worksheet and function comments first Then fill in the code 17 Example Take a look at RPS.py to see what I am expecting. 18