我的最后一个函数出现类型错误。我该如何称呼他们?另外,如何找到所有内容的总数和平均值?我迷路了



我之前在这里询问过我创建的这个工资计算器。我用Java写的,但我的教授不想用Java写。我选择了Python,现在我正在努力翻译我的Java程序。

对于-:"function"one_answers"function",我得到了不受支持的操作数类型的TypeError。根据我的理解,我不能减去定义的函数。我得先打电话给他们。我已经多次更改代码来修复TypeError,但我仍然会得到相同的错误!!我能做些什么来解决这个问题?

解决这个问题后,我需要找到所有东西的总数和平均值(工资、小时数、总工资等(。我在Java程序中没有这样做。当我弄清楚如何对它进行编码时,我的大脑迷失了方向。我有一张图表,上面有员工姓名、工作时间和工资。我需要在电子表格中传输这些信息并在python程序中打开电子表格文件吗?

这是我的代码:

print('Hello')
percent = 15
tax_rate = percent / 100
print(tax_rate)
first_name = str(input('First Name: '))
last_name = str(input('Last Name: '))
print(last_name, ',', first_name)
pay_rate = float(input('Pay Rate: '))
total_hours = input('Hours Worked: ')
# regular hours = total hours if less than 40
# overtime = total hours - 40
regular_hours = 40
for regular_pay in total_hours:
if float(total_hours) <= regular_hours:
regular_pay = float(total_hours) * pay_rate
print('Regular Pay: ', regular_pay)
for overtime_pay in total_hours:
if float(total_hours) > regular_hours:
overtime_pay = (float(total_hours) - float(40)) * 1.5 * pay_rate
print('Overtime Pay: ',overtime_pay)

def gross_pay():
return float(regular_pay) + float(overtime_pay)

print('Gross Pay: ', gross_pay())

def tax_amount():
return (gross_pay) * tax_rate
# tax amount gross pay * tax rate

def net_pay():
return gross_pay - tax_amount

print('Net Pay: ', net_pay())
# net pay = gross pay - tax amount 
代码的简明版本。我假设total_hours只有一个数字。
percent = 15
tax_rate = percent / 100
pay_rate = float(input('Pay Rate: '))
total_hours = float(input('Hours Worked: ')) # input a number
# regular hours = total hours if less than 40
# overtime = total hours - 40
regular_hours = min(40, total_hours)
regular_pay = regular_hours * pay_rate
overtime_hours = max(0, total_hours - 40)
overtime_pay = overtime_hours * 1.5 * pay_rate
# if you really want to use functions
def gross_pay():
return regular_pay + overtime_pay
print('Gross Pay: ', gross_pay())
def tax_amount():
return gross_pay() * tax_rate
# tax amount gross pay * tax rate
def net_pay():
return gross_pay() - tax_amount()

print('Net Pay: ', net_pay())
# net pay = gross pay - tax amount 
# if you don't have a strong reason to use functions
gross_pay = regular_pay + overtime_pay
tax_amount = gross_pay * tax_rate
net_pay = gross_pay - tax_amount
print('Gross Pay: ', gross_pay)
print('Net Pay: ', net_pay)

我认为您没有调用函数,修复最后几行如下:

def tax_amount():
return gross_pay() * tax_rate

def net_pay():
return gross_pay() - tax_amount()

对我来说,这个片段很好用。要调用函数,请使用function((,否则Python需要一个变量,该变量将为您提供TypeError。

您所犯的错误是调用没有括号的函数。

更改:

def net_pay():
return gross_pay - tax_amount

至:

def net_pay():
return gross_pay() - tax_amount()

最新更新