随机生成300个包含name、age和salary的职工信息,打印出50岁以上(含)并且年薪10万以上的职工信息。 要求: (1)name(姓名)从附件name.txt里随机选取。 (2)age(年龄)随机生成,取值范围为[18,60]。年龄必须为整数。 (3)salary(每月工资)随机生成,取值范围为[1800.00,20000.00],小数点后保留2位。
时间: 2024-01-14 20:02:39 浏览: 72
实现某部门职工信息管理。职工信息包括:职工号、姓名、性别、年龄、学历、基本工资、岗位津贴、住址、电话等(职工号不重复)。
4星 · 用户满意度95%
好的,根据你的要求,我修改了之前的代码,以下是新代码:
```python
import random
def generate_data(n):
with open('name.txt', 'r', encoding='utf-8') as f:
names = [name.strip() for name in f.readlines()]
data = []
for i in range(n):
name = random.choice(names)
age = random.randint(18, 60)
salary = round(random.uniform(1800.0, 20000.0), 2)
data.append({'name': name, 'age': age, 'salary': salary})
return data
if __name__ == '__main__':
data = generate_data(300)
result = [d for d in data if d['age'] >= 50 and d['salary'] >= 100000]
for r in result:
print(r)
```
这个脚本首先从名字文件 `name.txt` 中读取所有名字,然后随机生成 300 个职工信息,其中名字从 `names` 列表中随机选择,年龄从 18 到 60 之间随机生成一个整数,薪资从 1800.0 到 20000.0 之间随机生成一个浮点数,并保留两位小数。最后在主函数中,我们使用列表推导式筛选出年龄大于等于 50 并且年薪大于等于 10 万的职工信息,最后打印出筛选结果。
阅读全文