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)