Day7 作业

作者: 风月辞寒 | 来源:发表于2019-07-30 19:06 被阅读0次

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

stu = {'name': '小罗', '年龄': 21, '成绩': 100, '电话': '12348437004', '性别': '男'}

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
g.删除性别不明的所有学生

stu_list = [
    {'name': '小罗', 'age': 21, 'score': 89, 'tel': '12348437004', 'sex': '男'},
    {'name': '小华', 'age': 17, 'score': 59, 'tel': '12348437008', 'sex': '男'},
    {'name': '小强', 'age': 20, 'score': 99, 'tel': '12348437006', 'sex': '女'},
    {'name': '小李', 'age': 21, 'score': 55, 'tel': '12348437005', 'sex': '不明'},
    {'name': '小刚', 'age': 17, 'score': 96, 'tel': '12348437007', 'sex': '男'},
    {'name': '小红', 'age': 21, 'score': 98, 'tel': '12348437009', 'sex': '不明'},
]

sc_count = age_count = max_score = 0
for stu in stu_list:
    if stu['score'] < 60:       # 打印不集合学生和成绩
        sc_count += 1
        print(stu['name'], stu['score'])    # 小华 59  小李 55

    if stu['age'] < 18:         # 统计未成年人数
        age_count += 1

    if stu['tel'][-1] == '8':       # 打印手机尾数为8的学生名字
        print(stu['name'], '手机尾数是8')    # 小华 手机尾数是8

    if max_score < stu['score']:        # 找出最高分
        max_score = stu['score']

for stu in stu_list:        # 打印最高分的学生名字
    if stu['score'] == max_score:
        print(stu['name'], '是最高分:', max_score)      # 小强 是最高分: 99
print('不及格的学生有:', sc_count, '个')   # 不及格的学生有: 2 个
print('未成年学生有:', age_count, '个')    # 未成年学生有: 2 个

# i = 0
# while i < len(stu_list):        # 从大到小排序
#     for n in range(i + 1, len(stu_list)):
#         if stu_list[i]['score'] < stu_list[n]['score']:
#             stu_list[i], stu_list[n] = stu_list[n], stu_list[i]
#     i += 1
# print(stu_list)


# def score_lis(elem):
#     return elem['score']
#
#
# stu_list.sort(reverse=True, key=score_lis)    # 定义函数调用
# print(stu_list)

stu_list.sort(reverse=True, key=lambda lis_score: lis_score['score'])   # 匿名函数
print(stu_list)
"""
[{'name': '小强', 'age': 20, 'score': 99, 'tel': '12348437006', 'sex': '女'},
{'name': '小红', 'age': 21, 'score': 98, 'tel': '12348437009', 'sex': '不明'},
{'name': '小刚', 'age': 17, 'score': 96, 'tel': '12348437007', 'sex': '男'},
{'name': '小罗', 'age': 21, 'score': 89, 'tel': '12348437004', 'sex': '男'},
{'name': '小华', 'age': 17, 'score': 59, 'tel': '12348437008', 'sex': '男'},
{'name': '小李', 'age': 21, 'score': 55, 'tel': '12348437005', 'sex': '不明'}]
"""

for n in range(len(stu_list)-1, -1, -1):    # 删除性别不明的学生
    if stu_list[n]['sex'] == '不明':
        stu_list.remove(stu_list[n])
print(stu_list)
"""
[{'name': '小强', 'age': 20, 'score': 99, 'tel': '12348437006', 'sex': '女'}, 
{'name': '小刚', 'age': 17, 'score': 96, 'tel': '12348437007', 'sex': '男'}, 
{'name': '小罗', 'age': 21, 'score': 89, 'tel': '12348437004', 'sex': '男'}, 
{'name': '小华', 'age': 17, 'score': 59, 'tel': '12348437008', 'sex': '男'}]
"""

3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

class1 = ['Bob', 'Gerry', 'Alice', 'Beytagh']
class2 = ['Jack', 'Tom', 'Edward', 'Beytagh']
class3 = ['Tony', 'Jones', 'Alice', 'Beytagh']
print(len(set(class1 + class2 + class3)))   # 选课学生总共有多少人    9

set1 = set(class1)
set2 = set(class2)
set3 = set(class3)
new_set1 = set1.difference(set2, set3)
print(new_set1, len(new_set1), '人只选了第一门课')      # {'Bob', 'Gerry'} 2 人只选了第一门课

new_set2 = set2.difference(set1, set3)
new_set3 = set3.difference(set1, set2)
all_set = new_set1 | new_set2 | new_set3
print(all_set, len(all_set), '人只选了一门课')      # {'Edward', 'Jack', 'Tom', 'Jones', 'Bob', 'Gerry', 'Tony'} 7 只选了一门课

new_set1 = (set1 & set2).difference(set3)
new_set2 = (set3 & set2).difference(set1)
new_set3 = (set1 & set3).difference(set2)
all_set = new_set1 | new_set2 | new_set3
print(all_set, len(all_set), '人只选了两门课')     # {'Alice'} 1 人只选了两门课

thr_set = set1 & set2 & set3
print(thr_set, len(thr_set), '人选了三门课')      # {'Beytagh'} 1 人选了三门课

相关文章

  • 爱自己营员打卡榜单D7|复盘

    Day7作业:复盘这七天的收获与启发

  • 和烨宝的亲子共读记录  第七天

    【烨煜生辉】亲子共读30天 2016.12.6 day7 放学后宝贝很快就写完了作业,最近写作业很开心,效率...

  • 【突破力】视频号特训营Day7:用故事思维拍出播放量破万的短视频

    【Day7作业】【字数】 359【作业内容】 题目:34岁之前,我为别人活着,34岁之后,我为自己活着 正文: 3...

  • Day7 :卡片阅读法

    DAY7 学习课程:《Day7 :向大师偷艺,如何甄别顶级阅读素材,一网打尽超一流作家》 今日作业:鉴赏一位你最喜...

  • 21天摄影训练营Day7

    Day7,9月3日作业:对称 这个作业看似好拍,其实很难呀!真正有意识去关注“对称”主题寻找素材时,才发现:...

  • day7作业

    1.编写一个函数,求1+2+3+...+N 2.编写一个函数,求多个数中的最大值 3.编写一一个函数,实现摇色子的...

  • day7作业

    1.写一个程序 a.用一个变量来保存一个班级的学生信息,学生信息:姓名、学号、成绩(英语、体育、美术、数学)、年龄...

  • day7作业

    学生信息管理系统

  • Day7—作业

    学生管理系统 代码如下:

  • day7作业

    1.已知一个列表,求列表中心元素 2.已知一个列表,求所有元素和 3.已知一个列表,求所有奇数下标元素 4.已知一...

网友评论

    本文标题:Day7 作业

    本文链接:https://www.haomeiwen.com/subject/szlorctx.html