首页 > 解决方案 > 我们需要做些什么来修复这个等式,以便它在我们的 Python 代码中工作?

问题描述

下面的分配和代码...

我正在帮助我儿子做作业。我知道编码,但不知道 Python。他已经走到了这一步,并要求我加入协助,我被难住了。我认为实得工资总额的公式太长,但我不知道该怎么做才能提供帮助。代码按原样工作,但是当我们尝试"...will take home $" + str(emp_1.salary) + ", after taxes." with "...will take home $" + str(emp_1.apply_taxes()) + ", after taxes."为两者切换时emp_1emp_2我们得到一个apply_taxes未定义的错误。我们需要做的就是让方程式起作用,我们会做得很好。任何建议将不胜感激!

谢谢!!

这是作业:

  1. 包括将解释联邦税率 (0.2) 和州税率 (0.0314) 的类变量
  2. 使用这些变量,向init方法添加一个方法,该方法将从员工工资中扣除联邦和州税。
  3. 使用适当的连接,输出第一个员工的工资和扣除税后员工的实得工资。
  4. 对第二个员工做同样的事情。

这就是输出的样子

这是我们拥有的代码:

class Employee:

  fed_tax = float(.2)
  state_tax = float(.0314)

  def __init__(self, name, salary):
    self.name = name
    self.salary = salary

  def apply_taxes(self):
    self.salary = int(float(self.salary - ((self.salary * float(self.fed_tax)) + (self.salary * float(self.state_tax)))))

emp_1 = Employee("Isaac Soiffer", 50000)
emp_2 = Employee("Jack Fuller", 45000)

print("The employee, " + emp_1.name + ", salary is $" + str(emp_1.salary) + ".")
print("Employee " + emp_1.name + " will take home $" + str(emp_1.salary) + ", after taxes.")

print("The employee, " + emp_2.name + ", salary is $" + str(emp_2.salary) + ".")
print("Employee " + emp_2.name + " will take home $" + str(emp_2.salary) + ", after taxes.")

标签: python

解决方案


您不会在任何地方调用应用税:尝试以下操作:

class Employee:

   fed_tax = 0.2
   state_tax = 0.0314

   def __init__(self, name, salary):
       self.name = name
       self.salary = salary
       self.post_taxed_salary = self.apply_taxes()

   def apply_taxes(self):
       return int(float(self.salary - ((self.salary * float(self.fed_tax)) + (self.salary * float(self.state_tax)))))

emp_1 = Employee("Isaac Soiffer", 50000)
emp_2 = Employee("Jack Fuller", 45000)
print('employee {} has salary of {} and after taxes {}'.format(emp_1.name, emp_1.salary, emp_1.post_taxed_salary))

回报:员工 Isaac Soiffer 工资 50000 税后 38430

请注意,因为 saalary 是一个属性,所以您可以将 post_taxed_salary 设为属性,例如

class Employee:

   fed_tax = 0.2
   state_tax = 0.0314

   def __init__(self, name, salary):
       self.name = name
       self.salary = salary


   @property
   def post_taxed_salary(self):
       return int(float(self.salary - ((self.salary * float(self.fed_tax)) + (self.salary * float(self.state_tax)))))

也应该工作


推荐阅读