python - 我们需要做些什么来修复这个等式,以便它在我们的 Python 代码中工作?
问题描述
下面的分配和代码...
我正在帮助我儿子做作业。我知道编码,但不知道 Python。他已经走到了这一步,并要求我加入协助,我被难住了。我认为实得工资总额的公式太长,但我不知道该怎么做才能提供帮助。代码按原样工作,但是当我们尝试"...will take home $" + str(emp_1.salary) + ", after taxes." with "...will take home $" + str(emp_1.apply_taxes()) + ", after taxes."
为两者切换时emp_1
,emp_2
我们得到一个apply_taxes
未定义的错误。我们需要做的就是让方程式起作用,我们会做得很好。任何建议将不胜感激!
谢谢!!
这是作业:
- 包括将解释联邦税率 (0.2) 和州税率 (0.0314) 的类变量
- 使用这些变量,向init方法添加一个方法,该方法将从员工工资中扣除联邦和州税。
- 使用适当的连接,输出第一个员工的工资和扣除税后员工的实得工资。
- 对第二个员工做同样的事情。
这是我们拥有的代码:
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.")
解决方案
您不会在任何地方调用应用税:尝试以下操作:
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)))))
也应该工作
推荐阅读
- swift - Swift: Parse does not load a video from URL
- c++ - Can you help to find some mistake in the code?
- reactjs - Building own custom backend server in nextjs
- javascript - Decoding nested objects in Javascript
- c++ - 修复 C++ 编译器错误 - 多重定义
- foreach - 在服务器端写几个嵌套的foreach是否正常?最佳做法是什么?
- facebook - 在 Messenger InApp 浏览器中未正确加载站点未加载。无法调试问题
- python - 我无法解决这个错误。我对 python 完全陌生。请解释我的错误和解决方案
- java - 为什么构造异常时会生成Java堆栈跟踪?
- mysql - 如何通过与另一个表列值的连接过滤该表来获取表的 mysqldump?