Practice Project 2
Practice Project 2
Practice Project 2
Practice Project 2
Practice Questions Section
1. What is []?
2. How would you assign the value 'hello' as the third value in a list stored in a variable named
spam? (Assume spam contains [2, 4, 6, 8, 10].)
For the following three questions, let’s say spam contains the list ['a', 'b', 'c', 'd'].
3. What does spam[int(int('3' * 2) // 11)] evaluate to?
4. What does spam[-1] evaluate to?
5. What does spam[:2] evaluate to?
For the following three questions, let’s say bacon contains the list [3.14, 'cat', 11, 'cat', True].
6. What does bacon.index('cat') evaluate to?
7. What does bacon.append(99) make the list value in bacon look like?
8. What does bacon.remove('cat') make the list value in bacon look like?
9. What are the operators for list concatenation and list replication?
10. What is the difference between the append() and insert() list methods?
11. What are two ways to remove values from a list?
12. Name a few ways that list values are similar to string values.
13. What is the difference between lists and tuples?
14. How do you type the tuple value that has just the integer value 42 in it?
15. How can you get the tuple form of a list value? How can you get the list form of a tuple
value?
16. Variables that “contain” list values don’t actually contain lists directly. What do they
contain instead?
17. What is the difference between copy.copy() and copy.deepcopy()?
Practice Projects sections
1. The Collatz Sequence
Write a function named collatz() that has one parameter named number. If number is even, then
collatz() should print number // 2 and return this value. If number is odd, then collatz() should
print and return 3 * number + 1. Then write a program that lets the user type in an integer and
that keeps calling collatz() on that number until the function returns the value 1. (Amazingly
enough, this sequence actually works for any integer—sooner or later, using this sequence, you’ll
arrive at 1! Even mathematicians aren’t sure why. Your program is exploring what’s called the
Collatz sequence, sometimes called “the simplest impossible math problem.”) Remember to
convert the return value from input() to an integer with the int() function; otherwise, it will be
a string value.
Add try and except statements to the previous project to detect whether the user types in a
non-integer string. Normally, the int() function will raise a ValueError error if it is passed a non-
integer string, as in int('puppy'). In the except clause, print a message to the user saying they
must enter an integer.
2. Comma Code
Say you have a list value like this:
Write a function that takes a list value as an argument and returns a string with all the items
separated by a comma and a space, with and inserted before the last item. For example, passing
the previous spam list to the function would return 'apples, bananas, tofu, and cats'. But your
function should be able to work with any list value passed to it. Be sure to test the case where
an empty list [] is passed to your function.
Of course, this is only an estimate, but 10,000 is a decent sample size. Some knowledge of
mathematics could give you the exact answer and save you the trouble of writing a program, but
programmers are notoriously bad at math.
4. Character Picture Grid
Say you have a list of lists where each value in the inner lists is a one-character
Think of grid[x][y] as being the character at the x- and y-coordinates of a “picture” drawn with
text characters. The (0, 0) origin is in the upperleft corner, the x-coordinates increase going
right, and the y-coordinates increase going down. Copy the previous grid value, and write code
that uses it to print the image.
Hint: You will need to use a loop in a loop in order to print grid[0][0], then grid[1][0], then
grid[2][0], and so on, up to grid[8][0]. This will finish the first row, so then print a newline. Then
your program should print grid[0][1], then grid[1][1], then grid[2][1], and so on. The last thing
your program will print is grid[8][5]. Also, remember to pass the end keyword argument to
print() if you don’t want a newline printed automatically after each print() call.
5. Table Printer
Write a function named printTable() that takes a list of lists of strings and displays it in a well-
organized table with each column right-justified. Assume that all the inner lists will contain the
same number of strings. For example, the value could look like this:
Hint: your code will first have to find the longest string in each of the inner lists so that the
whole column can be wide enough to fit all the strings. You can store the maximum width of
each column as a list of integers. The printTable() function can begin with colWidths = [0] *
len(tableData), which will create a list containing the same number of 0 values as the number of
inner lists in tableData. That way, colWidths[0] can store the width of the longest string in
tableData[0], colWidths[1] can store the width of the longest string in tableData[1], and so on.
You can then find the largest value in the colWidths list to find out what integer width to pass to
the rjust() string method.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: