使用python实现:编写函数test(password, earning, age)用于检测输入错误。要求输入密码password第一个符号不能是数字,工资earnings的范围是0—20000,工作年龄的范围是18—70。可使用断言assert、逐条判断或者循环判断来实现检查,若三项检查都通过则返回True。20分
时间: 2024-03-03 22:49:20 浏览: 28
好的,以下是实现要求的 Python 代码:
```python
def test(password, earnings, age):
# 检查密码
assert not password[0].isdigit(), "密码第一个字符不能是数字"
# 检查工资范围
assert 0 <= earnings <= 20000, "工资范围应在0~20000之间"
# 检查年龄范围
assert 18 <= age <= 70, "年龄范围应在18~70之间"
# 如果三项检查都通过,则返回True
return True
```
该函数使用了断言(assert)来实现逐条检查输入是否合法,如果其中任意一项检查不通过,则抛出异常,否则返回True。
在检查密码时,我们使用了字符串的isdigit()方法来判断第一个字符是否为数字。如果第一个字符是数字,则抛出异常。
在检查工资和年龄时,我们使用了逻辑运算符和比较运算符来判断输入是否在指定范围内。如果输入不在范围内,则抛出异常。
希望能帮到您!
相关问题
本关任务:编写一个能计算公司一年支出的程序。 已知某company有员工30人,分三类:WeekWorker每周580¥,MonthWorker月薪每月2500 ¥ ,YearWorker年薪每年22000 ¥ 。 已知有Employee类,有成员函数earning()用于计算Employee一年的收入。在conmpany类中有Employee[]存放公司员工,成员函数salariesPay()计算并打印公司的所有一年薪水之和。 请编写类Company,Employee,WeekWorker,MonthWorker,YearWorker,假定公司三类员工各自的数量用随机数来模拟,打印该公司一年的薪水支出。 编程要求
以下是对应的代码实现,主要是类的定义和成员函数的实现:
```python
import random
# 员工类
class Employee:
def earning(self):
pass
# 周工人员类
class WeekWorker(Employee):
def earning(self):
return 580 * 52
# 月工人员类
class MonthWorker(Employee):
def earning(self):
return 2500 * 12
# 年工人员类
class YearWorker(Employee):
def earning(self):
return 22000
# 公司类
class Company:
def __init__(self):
self.employee_list = []
self.week_num = 0
self.month_num = 0
self.year_num = 0
self.total_pay = 0
# 随机生成员工并添加到员工列表中
def generate_employee(self):
for i in range(30):
r = random.randint(1, 3)
if r == 1:
self.employee_list.append(WeekWorker())
self.week_num += 1
elif r == 2:
self.employee_list.append(MonthWorker())
self.month_num += 1
else:
self.employee_list.append(YearWorker())
self.year_num += 1
# 计算所有员工的一年薪水之和
def salariesPay(self):
for employee in self.employee_list:
self.total_pay += employee.earning()
print("公司一年的薪水支出为:", self.total_pay)
# 测试
if __name__ == '__main__':
company = Company()
company.generate_employee()
print("公司员工数量:周工人员{}人,月工人员{}人,年工人员{}人".format(company.week_num, company.month_num, company.year_num))
company.salariesPay()
```
运行代码后,会输出公司员工数量以及一年的薪水支出。
编写一个能计算公司一年支出的程序。 已知某company有员工30人,分三类:WeekWorker每周580¥,MonthWorker月薪每月2500 ¥ ,YearWorker年薪每年22000 ¥ 。 已知有Employee类,有成员函数earning()用于计算Employee一年的收入。在conmpany类中有Employee[]存放公司员工,成员函数salariesPay()计算并打印公司的所有一年薪水之和。 请编写类Company,Employee,WeekWorker,MonthWorker,YearWorker,假定公司三类员工各自的数量用随机数来模拟,打印该公司一年的薪水支出。
好的,以下是关于Company、Employee、WeekWorker、MonthWorker和YearWorker类的代码实现。
```python
import random
class Employee:
def earning(self):
pass
class WeekWorker(Employee):
def earning(self):
return 580 * 52
class MonthWorker(Employee):
def earning(self):
return 2500 * 12
class YearWorker(Employee):
def earning(self):
return 22000
class Company:
def __init__(self):
self.employees = []
for i in range(30):
r = random.randint(0, 2)
if r == 0:
self.employees.append(WeekWorker())
elif r == 1:
self.employees.append(MonthWorker())
else:
self.employees.append(YearWorker())
def salariesPay(self):
total = 0
for employee in self.employees:
total += employee.earning()
print("该公司一年的薪水支出为:", total)
company = Company()
company.salariesPay()
```
在上述代码中,我们首先定义了一个Employee类,其中有一个earning()函数,用于计算Employee一年的收入。然后,我们又定义了WeekWorker、MonthWorker和YearWorker三个类,分别表示周薪、月薪和年薪的员工。这些类都继承自Employee类,并且都实现了earning()函数,用于计算自己的一年收入。
接着,我们定义了一个Company类,其中有一个名为employees的成员变量,用于存放公司的所有员工。在Company类的构造函数中,我们使用随机数生成器模拟了公司三类员工各自的数量,将它们添加到employees变量中。
最后,我们在Company类中定义了一个名为salariesPay()的成员函数,用于计算并打印公司的所有一年薪水之和。在这个函数中,我们遍历了employees变量中的所有员工,调用他们的earning()函数,将所有员工的一年收入加起来,然后打印出来。
最后,我们创建了一个Company对象,并调用了它的salariesPay()函数来计算并打印公司的一年薪水支出。