HW1 PDF
HW1 PDF
HW1 PDF
Fall 2019
Homework 1
Due Date: 09/20/2019, 11:59PM ET
100 pts
Read the instructions carefully before starting the assignment. Make sure your code follows the
stated guidelines to ensure full credit for your work.
Instructions:
- The work in this lab must be completed alone and must be your own.
- Download the starter code file from the HW1 Assignment on Canvas. Do not change
the function names or given started code on your script.
- A doctest is provided as an example of code functionality. Getting the same result as the
doctest does not guarantee full credit. You are responsible for debugging and testing your
code with enough data, you can share ideas and testing code during your recitation class.
As a reminder, Gradescope should not be used to debug and test code!
- Each function must return the output (Do not use print in your final submission, otherwise
your submissions will receive a -1 point deduction)
- Do not include test code outside any function in the upload. Printing unwanted or ill-
formatted data to output will cause the test cases to fail. Remove all your testing code
before uploading your file (You can also remove the doctest). Do not include the input()
function in your submission.
- All functions must return the None keyword if the data given to the function is not
the expected type. Don’t forget to consider the edge cases.
Goal:
[20 pts] Write the function isPower(x,y) which takes in two integers x and y. The function checks
if y is a power of x. If y is a power of x, return what power it is. Example: x = 3, y = 9. 9 is a power
of 3, and three must be raised to the second power, so isPower would return 2. Function would
return -1 if y is not a power of x. You are not allowed to use the math module.
Example:
isPower(4, 64) will return 3 since 4^3 = 64.
isPower(17, 90) will return -1 since 90 is not a power of 17
[20 pts] Write the method translate(translationDict, txt) that takes in a dictionary and a string. The
dictionary contains keys of strings that have a value of another string. You will be translating the
input string using the key-value pairs in the dictionary to a new string that has replaced all the
words in the input string with the words' value in the dictionary. Your function should convert txt
to all lowercase letters before making the translations. If a word in the string is not in the translation
dictionary, the word will retain its original form. Hint: str.lower() method returns a new string with
all lowercase letters, str.split() splits a string into a list, default separator is any whitespace.
Example:
>>> myDict = {'up': 'down', 'down': 'up', 'left': 'right', 'right': 'left', '1': 'one'}
>>> text = 'up down left right forward 1 time'
>>> translate(myDict, text)
'down up right left forward one time'
[20 pts] Write the function onlyTwo(x, y, z) which takes in three positive integers x, y and z. The
function returns an integer with the sum of the squares of the two largest numbers. Hint: the max()
method could be useful
Example:
onlyTwo(1, 2, 3) will return 13 since 2*2 + 3*3 = 13
onlyTwo(3, 3, 2) will return 18 since 3*3 + 3*3 = 18
[20 pts] Write the function largeFactor(num) which takes in an integer num that is greater than 1.
The function returns the largest integer that is smaller than num and evenly divides num.
Example:
largeFactor(15) will return 5 since the factors of 15 are 1, 3 and 5
largeFactor(7) will return 1 since 7 is prime
[20 pts] The Hailstone sequence of numbers can be generated from a starting positive integer, n
by:
• If n is even then the next n of the sequence = n/2
• If n is odd then the next n of the sequence = (3 * n) + 1
• Continue this process until n is 1.
The (unproven) Collatz conjecture is that the hailstone sequence for any starting number always
terminates. Write the function hailstone(num) that takes in an integer num and returns a list with
the hailstone sequence starting at num.
Example:
hailstone(5) will return [5, 16, 8, 4, 2, 1]
hailstone(6) will return [6, 3, 10, 5, 16, 8, 4, 2 , 1]
Deliverables:
• Submit your code with the file name HW1.py to the HW1 GradeScope assignment before
the due date. If you were unable to complete a function, comment out the function
definition.