Python 我将如何着手修复这段代码?
如果选择employee,下面的代码应该输出以下内容Python 我将如何着手修复这段代码?,python,Python,如果选择employee,下面的代码应该输出以下内容 Do you wish to enter data for an (E)mployee, a (S)alesperson, or would you like to (Q)uit?: e Enter the name of the employee: (employee name) Enter (employee name) hourly pay rate: (pay rate) Enter (employee name) hours wo
Do you wish to enter data for an (E)mployee, a (S)alesperson, or would you like to (Q)uit?: e
Enter the name of the employee: (employee name)
Enter (employee name) hourly pay rate: (pay rate)
Enter (employee name) hours worked: (hours worked ```
Employee data:
Employee name: (employee name)
Employee hourly pay: (hourly pay)
Hours worked: (hours worked)
Pay: (pay)
也就是说,如果您选择为员工输入数据^^^
如果您希望为销售人员选择以下数据,请参见以下输出
Do you wish to enter data for an (E)mployee, a (S)alesperson, or would you like to (Q)uit?: s
Enter the name of the employee: (employee name)
Enter (employee name) hourly pay rate: (hourly pay)
Enter the number of hours worked by (employee name): (hours worked)
Enter the amount of sales made by (employee name): (sales made)
Enter the commission percentage that will be earned by (employee name): (commission percentage)
Salesperson data:
Employee name: (employee name)
Employee hourly pay: (hourly pay)
Hours worked: (hours worked)
Sales: (sales made)
Commission percentage: (commission percent)
Pay: (pay)
下面是执行所有这些操作的整个代码块。请记住,这必须使用类和多态性来完成
class Employee:
def __init__(self, hours_worked, hourly_rate):
self.__hours_worked = 0
self.__hourly_rate = 0
def set_hours_worked(self, hours_worked):
self.__hours_worked = hours_worked
def get_hours_worked(self):
return self.__hours_worked
def set_hourly_rate(self, hourly_rate):
self.__hourly_rate = hourly_rate
def get_hourly_rate(self):
return self.__hourly_rate
def calc_pay(self):
return self.__hourly_rate * self.__hours_worked
def __str_(self):
print()
string1 = 'Employee data: ' + '\n' + 'Employee name: ' + employee_name + '\n' + 'Employee hourly pay rate: ' + employee_pay + '\n' + 'Hours worked: ' + employee_hours + '\n' + 'Pay: ' + employee_pay
class Salesman(Employee):
def __init__(self, weekly_sales, commission, hours_worked, hourly_rate):
Employee.__init__(self, hours_worked, hourly_rate)
self.__weekly_sales = 0
self.__commission = 0
def set_weekly_sales(self, weekly_sales):
self.__weekly_sales = weekly_sales
def get_weekly_sales(self):
return self.__weekly_sales
def set_commission(self, commission):
self.__commission = commission
def get_commission(self):
return self.__commission
def calc_pay(self):
return Employee.calc_pay(self) + (self.__weekly_sales * self.__commission)
def __str__(self):
print()
string2 = 'Salesperson data: ' + '\n' + 'Employee name: ' + salesperson_name + '\n' + 'Employee hourly pay rate: ' + str(
salesperson_pay) + '\n' + 'Hours worked: ' + salesperson_hours + '\n' + 'Sales: ' + salesperson_sales + '\n' + 'Commission percentage: ' + str(
salesperson_commission) + '\n' + 'Pay: ' + str(salesperson_pay)
go_on = 'y'
while go_on == 'y':
input1 = input('Do you wish to enter data for an (E)mployee, a (S)alesperson, or would you like to (Q)uit?: ')
if input1 == 'e' or 'E':
employee_name = input('Enter the name of the employee: ')
employee_pay = input('Enter ' + employee_name + ' hourly pay rate: ')
employee_hours = input('Enter the number of hours worked by ' + employee_name + ': ')
employee_pay_rate = employee_pay * int(employee_hours)
employee = Employee(employee_name, employee_pay, employee_hours, employee_pay_rate)
print(employee)
if input1 == 's' or 'S':
salesperson_name = input('Enter the name of the employee: ')
salesperson_pay = float(input('Enter ' + salesperson_name + ' hourly pay rate: '))
salesperson_hours = input('Enter the number of hours worked by ' + salesperson_name + ': ')
salesperson_sales = input('Enter the amount of sales made by ' + salesperson_name + ': ')
salesperson_commission = float(input('Enter the commission percentage that will be earned by ' + salesperson_name + ': '))
salesperson = Salesman(salesperson_pay, salesperson_hours, salesperson_sales, salesperson_commission)
print(salesperson)
else:
go_on = 'n'
我确信我基本上都做对了,但我遇到了一些问题,我不知道如何解决它们。错误:您正在将while循环中的5个参数传递给包含
self
的员工
raw\u input
输入的<代码>数量
input1==“e”或“e”
始终为true
。Doinput1==“e”或input1==“e”
这样,您就可以利用while循环来添加所需的用户
- 您有一个基类
,其构造函数或Employee
接受init
(自我、工作小时数、小时费率)
(个人、姓名、工作时间、小时费率)
- 在class
的saller
方法中,尝试在父类\uuuu init\uuuu
参数优先的位置保持传递的参数顺序Employees
您面临的问题是什么?My uu init uuuuuuuuuuuuuuuuo()函数有3个参数,但它有5个@onlinejudge95。就您的
Employee
类而言,它确实有3个参数,您可以在Employee=Employee(Employee\u name,Employee\u pay,Employee\u hours,Employee\u pay\u rate)中发布回溯第70行吗TypeError:uuu init_uuuuuu()接受3个位置参数,但给出了5个
@onlinejudge95@KeghanPettit这是因为您在while
循环中将5个参数传递给Employee
,其中包含self
,谢谢,但这不是本实验室所需要的。如果这是一个实际的项目,我会在课外进行但这根本不需要。现在我输入了一个员工的数据,我得到了一条消息,这不是一个错误,但这是它说的“我如何解决这个问题,以便str命令打印输出应该是什么,而不是什么?当我尝试为一个销售人员输入数据时,我也会得到一条错误消息,因为没有定义员工名称@spiritsreedodef\u str”__(自我):
instaead ofdef\uu str\uu(自我):
def __init__(self, name, hours_worked, hourly rate, weekly_sales, commission):
Employee.__init__(self, name, hours_worked, hourly_rate)
self.__weekly_sales = 0
self.__commission = 0`