CS 100

Logo

Scientific Computing

Activity 12 - More practice with functions

Create a file called activity12.py in cs100/ch2. As you work through the following problems, pay careful attention to whether a function should print something or instead return something. Notice how that effects how a function is called.

  1. Write a function called factorial that takes one parameter (a nonnegative integer). The function will return the factorial of the number. Call your function to test it. For example,
    result = factorial(5)
    print(result) # it should print 120
    
  2. Write a function called isEven that takes one parameter (a nonnegative integer). The function will return the boolean value True if the given number is even, otherwise, it will return the boolean value False. Call your function to test it. For example,
    isFiveEven = isEven(5)
    print(isFiveEven) # it should print False
    
  3. Write a function called displayStudentInfo which accepts two parameters: a string representing a student’s name and a nonnegative integer representing the student’s age. The function should print a sentence about the student. For example, calling your function to test it will look as follows:
    displayStudentInfo("Emily", 20) # it should print "Emily is a 20 year old student"
    displayStudentInfo("Bob", 24) # it should print "Bob is a 24 year old student"
    
  4. Write a function multiPrint which accepts two parameters: a string and a nonnegative integer representing the number of times that the string should be printed (hint: use a for loop). Call your function to test it. For example, calling multiPrint("repeat", 5) will print to the Shell the following:
    repeat
    repeat
    repeat
    repeat
    repeat
    
  5. Write a function getGrade which accepts one parameter: a nonnegative integer score between 0 and 100. The function should return the string “A”, “B”, “C”, “D”, or “F” using the standard grading scale. Call your function to test it, for example:
    myGrade = getGrade(89)
    print(myGrade) # should print B
    
  6. Write a function positivity which accepts one parameter: an integer n. The function should print either “positive number”, “zero”, or “negative number” depending on the value of n. Call your function to test it. For example,
    positivity(5) # should print "positive number"
    positivity(-10) # should print "negative number"
    

If you finish early

  1. Write a function getRandomNumber13 that takes no parameters and returns a random number between 1 and 13 using only functions we have discussed so far. Hint: Use the random() function from the random module, which returns a number in the range [0,1), and multiply it by 13 to get a decimal value x in the range [0.0, 13.0). Next, return the ceiling of x.

  2. Write a function getRandomNumber4 that takes no parameters and returns a random number between 1 and 4. Hint: use the same idea as above.

  3. Write a function getRandomCard which will return a string consisting of a random card in a standard deck of 52 cards. For example, it might return “4 of clubs” or “Ace of diamonds”. Hint: use your getRandomNumber13 and getRandomNumber4 to determine the face value and suit. Call your function to test.

  4. Play this interactive text-based game. Notice how there’s a limited set of inputs that the user can type. Depending on what the user types, something happens. Think about how you might make an interactive story of your own!

How to submit

Submit your activity12.py file to Moodle.