python随机生成1000个不同学生的学号,专业号(只有100个专业),姓名,性别,生日,并将结果保存到txt文件中。给出代码
时间: 2023-06-18 15:05:37 浏览: 194
随机抽取学号源码
4星 · 用户满意度95%
```python
import random
# 生成学号
def generate_student_id():
prefix = '2021' # 假设当前年份是2021年
suffix = str(random.randint(100000, 999999)).zfill(6) # 生成6位随机数字,并补齐到6位
return prefix + suffix
# 生成专业号
def generate_major_id():
return str(random.randint(1, 100)).zfill(3) # 生成3位随机数字,并补齐到3位
# 生成姓名
def generate_name():
# 假设只使用常见的1000个姓氏和1000个名字
first_names = ['张', '王', '李', '赵', '陈', '刘', '杨', '黄', '周', '吴']
last_names = ['伟', '芳', '娜', '秀英', '敏', '静', '丽', '强', '磊', '军']
first_name = random.choice(first_names)
last_name = random.choice(last_names)
return last_name + first_name
# 生成性别
def generate_gender():
genders = ['男', '女']
return random.choice(genders)
# 生成生日
def generate_birthday():
year = random.randint(1990, 2005)
month = random.randint(1, 12)
if month in [1, 3, 5, 7, 8, 10, 12]:
day = random.randint(1, 31)
elif month in [4, 6, 9, 11]:
day = random.randint(1, 30)
else:
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
day = random.randint(1, 29)
else:
day = random.randint(1, 28)
return '{}-{}-{}'.format(year, str(month).zfill(2), str(day).zfill(2))
# 生成1000个学生信息
students = []
for i in range(1000):
student_id = generate_student_id()
major_id = generate_major_id()
name = generate_name()
gender = generate_gender()
birthday = generate_birthday()
student = {
'学号': student_id,
'专业号': major_id,
'姓名': name,
'性别': gender,
'生日': birthday
}
students.append(student)
# 将学生信息保存到txt文件中
with open('students.txt', 'w') as f:
for student in students:
line = '{}\t{}\t{}\t{}\t{}\n'.format(student['学号'], student['专业号'], student['姓名'], student['性别'], student['生日'])
f.write(line)
```
以上代码中,我们定义了5个函数来生成学生信息的各个字段,然后使用一个列表来保存1000个学生信息,最后将学生信息写入到txt文件中。文件中每一行表示一个学生,字段之间使用制表符分隔。
阅读全文