1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话
dict1 = {'name': ['张一', '张二', '张三', '张四', '张五', '张六'],
'age': [15, 16, 17, 18, 19, 20],
'score': [50, 60, 59, 80, 90, 100],
'tel': ['13808075188', '13808075882', '13808075883', '13808075888', '13808075889', '13808075884']}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
#a.统计不及格学生的个数
#b.打印不及格学生的名字和对应的成绩===========================
dict1 = {'name': ['张一', '张二', '张三', '张四', '张五', '张六'],
'age': [15, 16, 17, 18, 19, 20],
'score': [50, 60, 59, 80, 90, 100],
'tel': ['13808075188', '13808075882', '13808075883', '13808075888', '13808075889', '13808075884']}
list_score = dict1['score']
list_name = dict1['name']
list_age = dict1['age']
list_tel = dict1['tel']
count = -1
d = 0
for score1 in list_score:
if score1 < 60:
count += 1
print('不及格的是:', list_name[d],'分数为:',list_score[d])
d += 1
d = 0
print('不及格人数为:', count+1)
#c.统计未成年学生的个数
for age1 in list_age:
if age1 < 18:
d += 1
print('未成年人数为:', d)
#d.打印手机尾号是8的学生的名字
# e.打印最高分和对应的学生的名字==============================
d = 0
s = []
for tel1 in list_tel:
if int(tel1[-1]) == 8:
s.append(list_name[d])
d += 1
print('手机尾号是8的学生是:',s)
print('最高分为:', max(list_score), '学生为:', list_name[list_score.index(max(list_score))])
# f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
new_name = []
new_age = []
new_tel = []
list_score = dict1['score']
list_name = dict1['name']
list_age = dict1['age']
list_tel = dict1['tel']
for i in range(len(list_score)):
max1 = max(list_score)
index1 = list_score.index(max1)
list_score[index1] = -1
new_age.append(list_age[index1])
new_name.append(list_name[index1])
new_tel.append(list_tel[index1])
print('tel:', new_tel)
print('name:', new_name)
print('age:', new_age)
结果:
不及格的是: 张一 分数为: 50
不及格的是: 张三 分数为: 59
不及格人数为: 2
未成年人数为: 3
手机尾号是8的学生是: ['张一', '张四']
最高分为: 100 学生为: 张六
tel: ['13808075884', '13808075889', '13808075888', '13808075882', '13808075883', '13808075188']
name: ['张六', '张五', '张四', '张二', '张三', '张一']
age: [20, 19, 18, 16, 17, 15]
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字
Math = ['小张', '小王', '小明', '小朱', '小赵', '小智']
English = ['小张', '小王', '小明', '小马', '小黑', '小呆']
Physical = ['小黑', '小王', '小明', '小红', '小智', '小马']
#a. 求选课学生总共有多少人
set2 = set(Math) | set(English) | set(Physical)
print('总共:', len(set2), '人')
#b. 求只选了第一个学科的人的数量和对应的名字
set4 = set(Math) - set(English) - set(Physical)
print('只选第一门学科的是:', set4, '人数:', len(set4))
#c. 求只选了一门学科的学生的数量和对应的名字
set5 = set(Math) - set(English) - set(Physical)
set6 = set(English) - set(Math) - set(Physical)
set7 = set(Physical) - set(Math) - set(English)
set8 = set5 | set6 | set7
print('只选一门的学生是:', set8, '人数:', len(set8))
#d. 求只选了两门学科的学生的数量和对应的名字
#e. 求选了三门学生的学生的数量和对应的名字
set5 = set(Math) & set(English) & set(Physical)
set6 = set2 - set5 -set4
print('只选两门的学生是', set6, '人数', len(set6))
print('选了3门的学生是', set5, '人数', len(set5))
结果:
总共: 10 人
总共: 10 人
只选第一门学科的是: {'小朱', '小赵'} 人数: 2
只选一门的学生是: {'小红', '小呆', '小朱', '小赵'} 人数: 4
只选两门的学生是 {'小红', '小马', '小张', '小呆', '小黑', '小智'} 人数 6
选了3门的学生是 {'小明', '小王'} 人数 2