P ython p rogramming e xercises



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə95/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   91   92   93   94   95   96   97   98   ...   124
PythonProgrammingExercisesGentlyExplained

Special Cases and Gotcha 
Because this exercise specifies that the change should be made from the minimal number of 
coins, there is only one correct answer for any given amount of change. The most important thing to 
get right in this algorithm is to calculate the coins in order from largest to smallest, otherwise you’ll 
end up in a situation where, say, you use two nickels instead of one dime. 
Also, be sure to use the // integer division operator instead of the / division operator to 
calculate the number of coins. Python’s regular division operator evaluates to floating-point numbers
which may contain a fractional part. (Even if it doesn’t, Python still evaluates the result to a float: 125 
/ 25
evaluates to the float 5.0 and not the integer 5.) Integer division always evaluates to integers 
and doesn’t have this potential problem. 
Because pennies represent 1 cent, you can set the number of pennies in change to whatever the 
amount
parameter is at the end of the function as long as it is greater than zero. 
Now try to write a solution based on the information in the previous sections. If you still have 
trouble solving this exercise, read the Solution Template section for additional hints. 
Solution Template 
Try to first write a solution from scratch. But if you have difficulty, you can use the following 
partial program as a starting place. Copy the following code from https://invpy.com/makechange-
template.py and paste it into your code editor. Replace the underscores with code to make a working 
program: 


Python Programming Exercises, Gently Explained 
116 
def makeChange(amount): 
# Create a dictionary to keep track of how many of each coin: 
change = ____ 
# If the amount is enough to add quarters, add them: 
if amount >= ____: 
change['quarters'] = amount // ____ 
# Reduce the amount by the value of the quarters added: 
amount = amount % ____ 
# If the amount is enough to add dimes, add them: 
if amount >= ____: 
change['dimes'] = ____ // ____ 
# Reduce the amount by the value of the dimes added: 
amount = ____ % ____ 
# If the amount is enough to add nickels, add them: 
if amount >= ____: 
change['nickels'] = ____ // ____ 
# Reduce the amount by the value of the nickels added: 
amount = ____ % ____ 
# If the amount is enough to add pennies, add them: 
if amount >= 1: 
change[____] = amount 
return change 
The complete solution for this exercise is given in Appendix A and 
https://invpy.com/makechange.py. You can view each step of this program as it runs under a debugger at 
https://invpy.com/makechange-debug/


117 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   91   92   93   94   95   96   97   98   ...   124




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin