day8-作业

day8-作业


1. 声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话

stu_msg = {'name': '小明', 'age': 22, 'scores': 90, 'tel': '110-119'}

2. 声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)

stu_msg = [
    {'name': '小红', 'age': 15, 'scores': 50, 'tel': '110-118'},
    {'name': '小橙', 'age': 28, 'scores': 89, 'tel': '100-200'},
    {'name': '小黄', 'age': 18, 'scores': 75, 'tel': '001-001'},
    {'name': '小绿', 'age': 30, 'scores': 66, 'tel': '800-828'},
    {'name': '小青', 'age': 12, 'scores': 57, 'tel': '300-208'},
    {'name': '小蓝', 'age': 22, 'scores': 43, 'tel': '400-500'}
]
  • a.统计不及格学生的个数
count = 0
for stu_dict in stu_msg:
    if stu_dict['scores'] < 60:
        count += 1
print('不及格学生:%d' % count)
  • b.打印不及格学生的名字和对应的成绩
for stu_dict in stu_msg:
    if stu_dict['scores'] < 60:
        print('不及格的学生姓名:%s,分数:%d' % (stu_dict['name'], stu_dict['scores']))
  • c.统计未成年学生的个数
count = 0
for stu_dict in stu_msg:
    if stu_dict['age'] < 18:
        count += 1
print('未成年学生人数:%d' % count)
  • d.打印手机尾号是8的学生的名字
for stu_dict in stu_msg:
    if stu_dict['tel'][-1] == '8':
        print('手机尾号为8的学生名字:%s' % stu_dict['name'])
  • e.打印最高分和对应的学生的名字
max1 = stu_msg[0]['scores']
for stu_dict in stu_msg[1:]:
    if stu_dict['scores'] > max1:
        max1 = stu_dict['scores']
for stu_dict in stu_msg:
    if max1 == stu_dict['scores']:
        print('最高分学生名字:%s,最高分:%d' % (stu_dict['name'], max1))
  • f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
# 方法一:选择排序法
length = len(stu_msg)
for i in range(length - 1):
    for j in range(i+1, length):
        if stu_msg[j]['scores'] > stu_msg[i]['scores']:
            stu_msg[i], stu_msg[j] = stu_msg[j], stu_msg[i]
print(stu_msg)
# 方法二:冒泡排序法
length = len(stu_msg)
for x in range(length - 1):
    for i in range(length - x - 1):
        j = i + 1
        if stu_msg[j]['scores'] > stu_msg[i]['scores']:
            stu_msg[i], stu_msg[j] = stu_msg[j], stu_msg[i]
print(stu_msg)

3. 用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)

course1 = ['小明', '小红', '小黄', '小蓝', '蔡徐坤']
course2 = ['小紫', '蔡徐坤', '小红', '小青', '小绿']
course3 = ['蔡徐坤', '小蓝', '小青', '小橙']
  • a. 求选课学生总共有多少人
sum1 = len(set(course1) | set(course2) | set(course3))
print('选课人数总共有:%d' % sum1)
  • b. 求只选了第一个学科的人的数量和对应的名字
choice = set(course1) - (set(course3) | set(course2))
print('只选了第一学科人数:%d,对应的名字:%s' % (len(choice), choice))
  • c. 求只选了一门学科的学生的数量和对应的名字
set1, set2, set3 = set(course1), set(course2), set(course3)
choice1 = set1 ^ set2 ^ set3
print('只选了一门学科的人数:%d,名字:%s' % (len(choice1), choice1))
  • d. 求只选了两门学科的学生的数量和对应的名字
choice2 = set()
set1, set2, set3 = set(course1), set(course2), set(course3)
set4 = set1 & set2 & set3
choice2.update((set1 & set2) - set4)
choice2.update((set1 & set3) - set4)
choice2.update((set2 & set3) - set4)
print('只选了两门学科学生人数:%d,名字:%s' % (len(choice2), choice2))
  • e. 求选了三门学生的学生的数量和对应的名字
set1, set2, set3 = set(course1), set(course2), set(course3)
set5 = set1 & set2 & set3
print('选了三门学科人数:%d,名字:%s' % (len(set5), set5))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话 stu_info = {'n...
    XXXXStone阅读 279评论 0 0
  • (学生管理系统简易版)用一个变量来保存一个班级的学生信息,学生信息包括:姓名、学号、成绩(英语、体育、美术、数学)...
    我才是鳄鱼宝宝阅读 237评论 0 0
  • 一、复习(列表)1.容器,可以同时存放多个数据。可变,有序2.元素,可以是任何类型的数据,一个列表可以同时存放不同...
    Smr_T阅读 403评论 0 0
  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话student = {'nam...
    嘿嘿_9c52阅读 505评论 0 0
  • 使用一个变量all_students保存一个班的学生信息(4个),每个学生需要保存:姓名、年龄、成绩、电话 1.添...
    woming阅读 168评论 0 0

友情链接更多精彩内容