Quiz 3 Study Guide
Quiz 3 will be in class on Friday, March 18 at the start of class.
You are responsible for all material needed for Labs 1 through 6, which
if statements, boolean operators, relational
operators, logic operators,
while loops, functions, and lists.
Study guides are not graded. You may work with other students on the questions, and ask questions about the guide during evening ninja help sessions, on Slack, or with meetings with faculty and staff. We do not provide full solutions to the study guides.
In addition to all concepts from Quiz 2, you should understand the following:
list data type
list manipulation (accumulators, indexing, etc)
mutable and immutable types
functions with returns and functions with side effects
Write a program which asks the user for 4 words and then prints them in reverse order. Hint: store them in a list.
Here’s an example run of the program:
word 1: hello word 2: zebra word 3: unicorn word 4: corgi corgi unicorn zebra hello
Write a program that reads in student grades from the user, until the user enters a -1. After reading in the -1, the program should compute and display the average grade.
Please enter your grades below. Enter a -1 when you are all done grade 1: 98 grade 2: 87 grade 3: 65 grade 4: 95 grade 5: 80 grade 6: -1 The average of those 5 grades is 85.000
Analyze the following code:
m = ["t","i","m","e"] s = "time" m = "a" s = "a"
What happens when this code is executed? What are the values of
Consider the following program:
def is_odd(number): # Q1: draw stack here (the first # time the function is called) if number % 2 == 0: return False else: return True def enigma(ls): total = 0 for i in range(len(ls)): if is_odd(ls[i]): ls[i] = ls[i]*2 total = total + ls[i] return total def main(): values = [5,3,4,8] print(values) result = enigma(values) print("result: %d" % result) print(values) main()
Draw the function stack as it would look the first time
is_odd()is called. [answer]
What variables are in scope at this point in the code?
What is the program’s output (i.e. what does it print when the program is run)?
What does the
Write a function called
getIntthat has two parameters,
hi. The function should prompt the user to enter an integer between
hi(inclusive), and then return the value entered. Your function should not return until the user enters a valid integer in the range
hi. You may assume both
hiare positive integers.
Now add a
main()function that calls
getIntto get an integer from 1-10. Your
main()should then print out "Boo!" that many times.
Here’s an example run of the full program:
Please enter an integer from 1-10: 99 Please enter an integer from 1-10: -40 Please enter an integer from 1-10: 4 Boo! Boo! Boo! Boo!
For the following program, show the full output when the program is run to completion, and draw the stack as it would look just before the computer executes the
def update(L, S): count = 0 data = S.split() for item in data: if item not in L: L.append(item) count = count + 1 # draw stack here return count def main(): words = ['roses','are','red'] print(words) line = 'violets are blue' result = update(words,line) print(result) print(words) main()
get_numbers(n)function doesn’t work. Find and fix the bug in the code below.
def get_numbers(n): """ Purpose: Read n numbers from the user and return them as a list Parameters: n -- the number of values to read from the user (integer) Return: a list of the numbers entered by the user """ for i in range(n): value_list =  value = int(input("Enter a number: ")) value_list.append(value) return value_list
Consider the game Rock, Paper, Scissors. Assume you have these two functions already written:
getPick()asks the user for "r,p,s?" and returns:
"rock" if they enter r
"paper" if they enter p
"scissors" if they enter s
"user" if user won the game (e.g., user="rock", comp="scissors")
"comp" if comp won the game (e.g., user="rock", comp="paper")
"tie" if it’s a tie game (e.g., user="rock", comp="rock")
Write a main() function that uses the above functions to play one round of rock-paper-scissors. Here are a few sample runs of the program:
$ python3 rps.py r,p,s?: r Computer chose rock tie... $ python3 rps.py r,p,s?: r Computer chose paper Computer wins! $ python3 rps.py r,p,s?: r Computer chose scissors You win!
Write the stub for the
Write the implementation for the
getPick()function should only accept r, p, or s from the user. If they enter anything else, print an error message and ask again.
r,p,s?: w please enter r, p, or s!!! r,p,s?: zebra please enter r, p, or s!!! r,p,s?: r
Given the assignments for
C, what is the value and type of each expression?
s = "abcdefg" L = ['Join me', 'and we can rule', 'the galaxy', 'as father and son'] P = Point(100,200) C = Circle(P, 5)
VALUE TYPE ----- ---- len(L)
"a" in L
"ABC" in S
P.getX() > 600