python代码,某学院电信科专业有四个年级(2018,2019,2020,2021),每个年级有三个自然班(01,02,03), 每个自然班有40名学生,每个学生的信息包括:学号(stid)、姓名(stname)、班级名(bjname), 及高等数学(math)、英语(eng)、计算机(compu)三门课程的成绩,设计一个字典数据对象 stdic,包含四个年级所有自然班的学生,要求能够通过字典键-值的映射,可以直接访 问任一自然班任一学生的任一信息数据。 数据源:要求导入faker及random库,通过列表推导式生成学号、姓名、班级 名,每名学生的学号为10位数字,1-4位是入学年度,5-6位是学院专业编号,7-8位 是同年级专业班级编号,9-10位是班级学生的序号。
时间: 2023-04-10 09:04:39 浏览: 186
stdic = {}
for year in range(2018, 2022):
for class_num in range(1, 4):
for student_num in range(1, 41):
stid = str(year) + str(2) + str(class_num).zfill(2) + str(student_num).zfill(2)
stname = faker.name()
bjname = str(year) + "级电信科" + str(class_num).zfill(2) + "班"
math = random.randint(60, 100)
eng = random.randint(60, 100)
compu = random.randint(60, 100)
stdic[stid] = {"stname": stname, "bjname": bjname, "math": math, "eng": eng, "compu": compu}
# 访问任一自然班任一学生的任一信息数据
print(stdic["2018020101"]["stname"]) # 访问学号为2018020101的学生的姓名
print(stdic["2019020205"]["math"]) # 访问学号为2019020205的学生的高等数学成绩
相关问题
用python完成某学院电信科专业有四个年级(2018,2019,2020,2021),每个年级有三个自然班(01,02,03), 每个自然班有 40 名学生,每个学生的信息包括:学号(stid)、姓名(stname)、班级名(bjname), 及高等数学(math)、英语(eng)、计算机(compu)三门课程的成绩,设计一个字典数据对象 stdic,包含四个年级所有自然班的学生,要求能够通过字典键-值的映射,可以直接访 问任一自然班任一学生的任一信息数据。 数据源:要求导入 faker 及 random 库,通过列表推导式生成学号、姓名、班级 名,每名学生的学号为 10 位数字,1-4 位是入学年度,5-6 位是学院专业编号,7-8 位 是同年级专业班级编号,9-10 位是班级学生的序号。三门课程的成绩可使用 random 库的子库从[40,100]范围内随机抽取。
可以回答这个问题。以下是用 Python 设计的字典数据对象 stdic:
```python
from faker import Faker
import random
fake = Faker()
stdic = {}
for year in range(2018, 2022):
stdic[year] = {}
for bjname in range(1, 4):
bjname_str = str(bjname).zfill(2)
stdic[year][bjname_str] = {}
for i in range(1, 41):
stid = str(year) + '0' + str(random.randint(1, 4)) + bjname_str + str(i).zfill(2)
stname = fake.name()
math = random.randint(40, 100)
eng = random.randint(40, 100)
compu = random.randint(40, 100)
stdic[year][bjname_str][stid] = {'stname': stname, 'bjname': bjname_str, 'math': math, 'eng': eng, 'compu': compu}
```
这个字典数据对象 stdic 包含了四个年级所有自然班的学生信息,可以通过以下方式访问任一自然班任一学生的任一信息数据:
```python
# 访问 2018 年 1 班第 1 个学生的姓名
stdic[2018]['01']['2018010101']['stname']
# 访问 2019 年 2 班第 20 个学生的计算机成绩
stdic[2019]['02']['2019020020']['compu']
```
用python编写、某学院电信科专业有四个年级(2018,2019,2020,2021),每个年级有三个自然班(01,02,03), 每个自然班有 40 名学生,每个学生的信息包括:学号(stid)、姓名(stname)、班级名(bjname), 及高等数学(math)、英语(eng)、计算机(compu)三门课程的成绩,设计一个字典数据对象 stdic,包含四个年级所有自然班的学生,要求能够通过字典键-值的映射,可以直接访 问任一自然班任一学生的任一信息数据。 数据源:要求导入 faker 及 random 库,通过列表推导式生成学号、姓名、班级 名,每名学生的学号为 10 位数字,1-4 位是入学年度,5-6 位是学院专业编号,7-8 位 是同年级专业班级编号,9-10 位是班级学生的序号。三门课程的成绩可使用 random 库 是的子库从[40,100]范围内随机抽取。
import random
from faker import Faker
fake = Faker('zh_CN')
# 生成学生信息
def generate_student_info():
stid = str(random.randint(2018, 2021)) + '0' + str(random.randint(1, 3)) + str(random.randint(1, 40)).zfill(2)
stname = fake.name()
bjname = str(stid)[:8]
math = random.randint(40, 100)
eng = random.randint(40, 100)
compu = random.randint(40, 100)
return {'stid': stid, 'stname': stname, 'bjname': bjname, 'math': math, 'eng': eng, 'compu': compu}
# 生成班级信息
def generate_class_info():
return [generate_student_info() for i in range(40)]
# 生成年级信息
def generate_grade_info():
return {'01': generate_class_info(), '02': generate_class_info(), '03': generate_class_info()}
# 生成字典数据对象
stdic = {'2018': generate_grade_info(), '2019': generate_grade_info(), '2020': generate_grade_info(), '2021': generate_grade_info()}
# 访问数据示例
print(stdic['2018']['01'][0]['stid']) # 输出2018010101的学号
print(stdic['2021']['03'][39]['stname']) # 输出2021030339的姓名
阅读全文
相关推荐
















