day7 - homework

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

student = {'name': '张三', '年龄': 18, 'score': 61, 'tel': '18990909090', 'gender': '男'}

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

students = [{'name': '张三', '年龄': 18, 'score': 61, 'tel': '18990909090', 'gender': '男'},
{'name': '李四', '年龄': 15, 'score': 20, 'tel': '18990909888', 'gender': '男'},
{'name': '大牛', '年龄': 24, 'score': 1, 'tel': '18988881221', 'gender': '男'},
{'name': 'Bob', '年龄': 18, 'score': 99, 'tel': '18977777778', 'gender': '不明'},
{'name': '狗剩', '年龄': 40, 'score': 33, 'tel': '18990904563', 'gender': '男'},
{'name': '弗朗基', '年龄': 19, 'score': 66, 'tel': '17377778790', 'gender': '不明'}
]

a.统计不及格学生的个数

count = 0
for x in students:
    if x['score'] < 60:
        count += 1
print('不及格学生个数:', count)

b.打印不及格学生的名字和对应的成绩

for x in students:
    if x['score'] < 60:
        print(x['name'], x['score'])

c.统计未成年学生的个数

t_count = 0
for x in students:
    if x['年龄'] < 18:
        t_count += 1
print('未成年学生个数:', t_count)

d.打印手机尾号是8的学生的名字

for x in students:
    y = x['tel'][-1]
    if y == '8':
        print('手机尾号是8的学生:', x['name'])

e.打印最高分和对应的学生的名字

s_list = []
for x in students:
    s_list.append(x['score'])
for x in students:
    if x['score'] == max(s_list):
        print('全班最高分是:', max(s_list), '分数最高的学生是:', x['name'])

f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

list1 = []
for x in students:
    list1.append(x['score'])
list1.sort(reverse=True)
for y in list1:
    for x in students:
        if x['score'] == y:
            students.append(x)
            students.remove(x)
print(students)

​g.删除性别不明的所有学生

new_students = students[:]
for x in new_students:
    if x['gender'] == '不明':
        students.remove(x)
print(students)

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

math_std = ['张三', '李四', '王大锤', '狗剩', '李刚']
eng_std = ['寒王', '李四', '王大锤', '老王', '黑妞']
music_std = ['李四', '孙悟空', '小红', '翠花', '黑妞']
math = set(math_std)
eng = set(eng_std)
music = set(music_std)

a. 求选课学生总共有多少人

sum1 = math | eng | music
print('选课学生总共有:', len(sum1))

b. 求只选了第一个学科的人的数量和对应的名字

only1 = math - eng - music
print('只选了第一个学科的人的数量是:', len(only1), '他们分别是:', only1)

c. 求只选了一门学科的学生的数量和对应的名字

only2 = math ^ eng ^ music
print('只选了一个学科的人的数量是:', len(only2), '他们分别是:', only2)

d. 求只选了两门学科的学生的数量和对应的名字

only3 = sum1 - only2 - (math & eng & music)
print('只选了两个学科的人的数量是:', len(only3), '他们分别是:', only3)

e. 求选了三门学生的学生的数量和对应的名字

only4 = math & eng & music
print('选了三个学科的人的数量是:', len(only4), '他们分别是:', only4)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2019-04-23 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数...
    快请输入昵称吧阅读 1,007评论 0 1
  • 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所有奇数下...
    DennisH阅读 786评论 0 0
  • 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所有奇数下...
    不语sun阅读 819评论 0 0
  • 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所有奇数下...
    晓刚啦阅读 806评论 0 0
  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) 2.声...
    iwsyt阅读 884评论 0 0