Module 6 Assignment 4.6 Answer
4.6 Write a program to prompt the user for hours and rate per hour using input to compute gross pay. Pay should be the normal rate for hours up to 40 and time-and-a-half for the hourly rate for all hours worked above 40 hours. Put the logic to do the computation of pay in a function called computepay() and use the function to do the computation. The function should return a value. Use 45 hours and a rate of 10.50 per hour to test the program (the pay should be 498.75). You should use input to read a string and float() to convert the string to a number. Do not worry about error checking the user input unless you want to – you can assume the user types numbers properly. Do not name your variable sum or use the sum() function.
Pay 498.75
Correct Python Code
# Function to compute pay based on hours and rate
def computepay(h, r):
if h > 40:
overtime_hours = h - 40
overtime_pay = overtime_hours * (r * 1.5)
regular_pay = 40 * r
total_pay = regular_pay + overtime_pay
else:
total_pay = h * r
return total_pay
# Prompt user for input
hrs = float(input("Enter Hours: "))
rate = float(input("Enter Rate per Hour: "))
# Compute pay using the function
p = computepay(hrs, rate)
# Display output
print("Pay", p)
Expected Output
Enter Hours: 45
Enter Rate per Hour: 10.50
Pay 498.75
Explanation
- Define
computepay(h, r)
- If
h > 40
:- Regular pay for 40 hours →
40 * r
- Overtime pay for extra hours →
(h - 40) * (r * 1.5)
- Total pay =
regular pay + overtime pay
- Regular pay for 40 hours →
- If
h ≤ 40
, calculate normal pay →h * r
- If
- Prompt user for input
- Convert user input (
input()
) to float for calculations.
- Convert user input (
- Call
computepay(hrs, rate)
and store the returned value inp
. - Print the final pay amount.
Why This Code is Correct
✅ Handles both normal and overtime pay correctly.
✅ Uses a function (computepay()
) to separate logic from input handling.
✅ Correctly converts user input from string to float
.
✅ Produces expected output matching Pay 498.75
.