python编程练习题,随机生成300个包含姓名、年龄和薪水的职工信息,打印出50岁以上(含)并且年薪10万以上的职工信息。要求: (1)name(姓名)从附件名称.txt里随机选取。(2)age(年龄)随机生成,取值范围为[18,60]。年龄必须为整数。(3)salary(每月工资)随机生成,取值范围为[1800.00,20000.00],小数点后保留2位。
时间: 2024-01-13 15:05:31 浏览: 59
好的,以下是 Python 代码实现:
```python
import random
def generate_data(n):
with open('名称.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)
```
这个脚本首先从名字文件 `名称.txt` 中读取所有名字,然后随机生成 300 个职工信息,其中名字从 `names` 列表中随机选择,年龄从 18 到 60 之间随机生成一个整数,薪资从 1800.0 到 20000.0 之间随机生成一个浮点数,并保留两位小数。最后在主函数中,我们使用列表推导式筛选出年龄大于等于 50 并且年薪大于等于 10 万的职工信息,最后打印出筛选结果。
阅读全文