我刚写了一个程序来计算员工的工资率。对我来说,程序看起来很好,但是当我尝试运行它时,我重新启动,它不会运行。我已经尝试重新启动Python GUI,但没有运气。这是程序:
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'))
是的,图表会很糟糕。我无法成功运行它以便它能够顺利运行。
答案 0 :(得分:1)
hours, rate = get_info()
reg_hours, overtime = calc_hours(hours)
regular_pay, overtime_pay, total_pay = calc_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'))
首先,看看你的main():
。您调用了get_info()
函数,当函数完成时,它返回hours, rate
,但您没有存储结果。 (这是您的hours
,rate
),接下来的两行也是如此。当您调用方法时,它会返回答案,您必须将它们存储到变量中。
这是3行变更
hours, rate = get_info()
reg_hours, overtime = calc_hours(hours)
regular_pay, overtime_pay, total_pay = calc_pay(reg_hours, overtime, rate)
最后,您写的内容有一个拼写错误calc_pay
而不是cal_pay
。因此,修复这将使您的程序工作,这是输出。
<强>输出强>
How many hours did you work this week?8
Please enter your pay rate: $20
Payroll Information
Pay Rate 20.00
Regular Hours 8.00
Overtime Hours 0.00
Regular Pay 160.00
Overtime Pay 0.00
Total Pay 160.00
让我向您解释这些任务陈述的作用。表格是这样的:
variable = expression
您可能会发现有助于阅读的链接:Defining Functions
如果您想修复聊天,请按以下步骤操作。
pattern = '{0:15s} {1:4.2f}'
print(pattern.format('Pay Rate', rate))
print(pattern.format('Regular Hours', reg_hours))
print(pattern.format('Overtime Hours', overtime))
print(pattern.format('Regular Pay', regular_pay))
print(pattern.format('Overtime Pay', overtime_pay))
print(pattern.format('Total Pay', total_pay))
输出:
Pay Rate 20.00
Regular Hours 20.00
Overtime Hours 0.00
Regular Pay 400.00
Overtime Pay 0.00
Total Pay 400.00
说明:
pattern = '{0:15s} {1:4.2f}'
# 0 mean the blank should be filled with the first argument,
# the colon(:) specifies the formatting of the string / number.
# s means to format a string, 15s means the string will be padded with spaces
# so it will take up exactly 15 spaces, without the number, s just mean
# use the string without any space padding
# d means format an integer, 4d mean the integer will be padded with space
# so it takes up exactly 4 spaces. f means float, and .2 mean 2 decimal point.