Sorry! There's no autograder as of now. Just test your work as best you can, you'll be graded pretty leniently. A for effort. It'll be in the works if time permits.
Homework Problem 1: Naughty Strings
What is the error message returned when you improperly use quotes inside of strings?
Provide an example and explain the error message.
Homework Problem 2: Fruits and Vegetables
x = ["apple", "banana", "carrot"]
Write one line of code that when executed returns "apples bananas and carrots".
Homework Problem 3: Fizz Buzz
Write a program that prints the integers from 1 to n (n is an argument to the procedure). But for multiples of three print "Fizz" instead of the number, and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz".
Homework Problem 4: Snow White and the Seven Dwarves
Write a program called
snow_white that takes in two numbers as arguments, the first is the
num_chants, the second is the
1. prints "heigh" "ho" alternatingly
2. prints "its off to work we go" after
num_chants of "heigh" or "ho"
3. stops printing after having "it's off to work we go"
EXAMPLE: should print it's off to work we go between every
5 alternating his and hos, for a maximum of
snow_white(5, 2) heigh ho heigh ho heigh it's off to work we go ho heigh ho heigh ho it's off to work we go
Use a while loop (and possibly control statements) to accomplish this behavior.
Homework Problem 5: Push First Odd Back (taken from CS10)
Write a function called
push_first_odd_back that takes in a list as an argument
This function should place the first odd number at the back of the input list.
Do not return a new list - in fact this function shouldn't return anything,
it should only modify the input list. (Hint: use the while loop)
Homework Problem 6: Cats and Dogs
Write a program that return True if the string "cat" and "dog" appear the same number of times in the given string.
cat_dog('catdog') → True cat_dog('catcat') → False cat_dog('1cat1cadodog') → True
Homework Problem 7: Character Frequencies
Write a function
char_freq() that takes a string and builds a frequency listing of the characters contained in it.
Represent the frequency listing as a Python dictionary with each letter as a key that stores the number of times that letter appears.
Try it with something like
Homework Problem 8.1: Caesar's Ciphers
Write a function
rotate_letters() that takes in a number and creates a new mapping of lower case letters offset by that number.
Return the new mapping as a dictionary such that the original letter is mapped to the shifted letter.
rotate_letters(2) would map
'e' and so on.
Homework Problem 8.2: Caesar's Ciphers
Write a function
decode_cipher() that takes in a dictionary of letter mappings and a cipher string (of only lower case letters).
Return the decoded string that is created when every character is replaced by its mapping from the dictionary
decode_cipher(rotate_letters(2), "abc") should return
Use this function to decode
"jbj fpurzr vf terng" given that the letters had been shifted by 13.
Homework Problem 9: Memoized Factorial
Write a memoized accumulated factorial procedure in a similar fashion to
memo_fib. You MUST use recursion.
Accumulated Factorial of 5 = 5! * 4! * 3! * 2! * 1!
Homework Problem 10: Growing Pains (Exponentially)
Write a generator
gen_exp() that takes a number n and generates (for eternity) the exponential of n to the n to the n starting at n.
For example the first few elements of
gen_exp(2) should be 2, (2^2), ((2^2)^ 2), (((2^2)^ 2) ^ 2)
Submit as python_hw instead of hw12. Please submit on/after April 1, 2016 (not earlier)!
For instructions, see this guide. It covers basic terminal commands and assignment submission.
If you have any trouble submitting, do not hesitate to ask a TA!