I just wrote a program to calculate employee’s pay rates. To me, the program looks just fine, but when I try to run it I get a restart, and it doesn’t run. I’ve tried restarting the Python GUI, but no luck. Here is the program:
def get_info():
hours = int(input("How many hours did you work this week?", ))
while hours < 8 or hours > 86:
print('Error ---- you must work at least 8 hours and no more than 86 hours')
hours = int(input('Please enter your hours worked again:', ))
print()
rate = float(input("Please enter your pay rate: $", ))
while rate < 7.00 or rate > 50.00:
print("Error ---- pay rate cannot be less than $7.00 or greater than $50.00")
rate = float(input("Please re-enter your pay rate: $", ))
return hours, rate
def calc_hours(num):
if num < 40:
reg_hours = num
overtime = 0
else:
reg_hours = 40
overtime = num - 40
return reg_hours, overtime
def calc_pay(num1, num2, pay_rate):
regular_pay = num1 * pay_rate
overtime_pay = num2 * (pay_rate * 1.5)
total_pay = regular_pay + overtime_pay
return regular_pay, overtime_pay, total_pay
def main():
get_info()
calc_hours(hours)
cal_pay(reg_hours, overtime, rate)
print ()
print (" Payroll Information")
print ()
print ("Pay Rate", format(rate, '14.2f'))
print ("Regular Hours", format(reg_hours, '10.2f'))
print ("Overtime Hours", format(overtime, '10.2f'))
print ("Regular Pay", format(regular_pay, '10.2f'))
print ("Overtime Pay", format(overtime_pay, '10.2f'))
print ("Total Pay", format(total_pay, '10.2f'))
Yes, the chart is gonna be wonky. I haven’t been able to run it successfully so that it’ll come out smoothly.
First, take a look at your
main():. You called yourget_info()function, when the function finish, it returnhours, rate, but you did not do store the result. (which is yourhours,rate) again, and so do the next two lines. When you call your methods, it return the answers, you have to store them to a variable.These are the 3 lines of changes
Lastly, there is a typo
calc_payinstead ofcal_payof what you write. So fixing that will make your program work, here is the output.Output
And let me explain to you what these assignment statement did. The form is like this:
variable = expressionA link you might found helpful to read: Defining Functions
In case you want to fix your chat, here is how to do it.
Output:
Explanation: