1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话
stu_info = {'姓名': '张三', '年龄': 29, '成绩': 89, '电话': '12345678'}
print(stu_info)
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
stu_info1 = [{'姓名': '张三', '年龄': 29, '成绩': 89, '电话': '12345678'},
{'姓名': '李四', '年龄': 18, '成绩': 34, '电话': '12345678'},
{'姓名': '王二', '年龄': 16, '成绩': 20, '电话': '12345673'},
{'姓名': '李明', '年龄': 52, '成绩': 85, '电话': '12345668'},
{'姓名': '韩三', '年龄': 13, '成绩': 92, '电话': '12345657'},
{'姓名': '姜大', '年龄': 15, '成绩': 99, '电话': '12352453'}]
count = 0
for stu in stu_info1:
if stu['成绩'] < 60:
count += 1
print('成绩不及格的学生的个数为:%d' % count)
b.打印不及格学生的名字和对应的成绩
new_low = {}
for stu in stu_info1:
if stu['成绩'] < 60:
new_low[stu['姓名']] = stu['成绩']
print('不及格的学生信息为:', new_low)
c.统计未成年学生的个数
count = 0
for stu in stu_info1:
if stu['年龄'] < 18:
count += 1
print('未成年的学生的个数为:%d' % count)
d.打印手机尾号是8的学生的名字
print('手机尾号是8的学生的名字分别为:')
for stu in stu_info1:
if stu['电话'][-1::1] == '8':
print(stu['姓名'])
e.打印最高分和对应的学生的名字
score = []
name = ''
for stu in stu_info1:
score.append(stu['成绩'])
if stu['成绩'] == max(score):
name = stu['姓名']
print('取得最高分的同学为:', name, '最高分数为:', max(score))
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
#give up!
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
math = ['张三', '李四', '王五', '小梅', '小明', '筱筱', '阿狗']
art = ['张三', '小梅', '阿七', '苏三', '小明', '韩梅梅', '阿狗']
music = ['李四', '王五', '小明', '小虾米', '小柒', '阿狗']
print('选课的学生总数有:', len(set(math + art + music)), '人')
b. 求只选了第一个学科的人的数量和对应的名字
only_math = set(math) - set(art + music)
print('只选了第一个学科的有', len(only_math), '名同学,分别是:', only_math)
c. 求只选了一门学科的学生的数量和对应的名字
stu_one = set(math) ^ set(art) ^ set(music)
print('只选了一门学科的人个数:', len(stu_one), ',分别有:', stu_one, sep=' ')
d. 求只选了两门学科的学生的数量和对应的名字
stu_two = set()
stu = math + art + music
for item in stu:
if stu.count(item) == 2:
stu_two.add(item)
count = len(stu_two)
print('只选了两门学科的人个数:', count, ',分别有:', stu_two)
e. 求选了三门学生的学生的数量和对应的名字
stu_three = set()
stu = math + art + music
for item in stu:
if stu.count(item) == 3:
stu_three.add(item)
count = len(stu_three)
print('选了3门学科的人个数:', count, ',分别有:', stu_three)