1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
{'姓名': '小张', '年龄': 24, '成绩': 49, '电话': '1519887854', '性别': '男'}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
students = [{'姓名': '小张', '年龄': 24, '成绩': 49, '电话': '1519887854', '性别': '男'},
{'姓名': '小花', '年龄': 22, '成绩': 51, '电话': '1548586858', '性别': '男'},
{'姓名': '小明', '年龄': 25, '成绩': 62, '电话': '1519454566', '性别': '男'},
{'姓名': '小黄', '年龄': 26, '成绩': 82, '电话': '1575487854', '性别': '女'},
{'姓名': '小李', '年龄': 28, '成绩': 81, '电话': '1585845665', '性别': '男'},
{'姓名': '小白', '年龄': 29, '成绩': 75, '电话': '1574743456', '性别': '不明'}]
a.统计不及格学生的个数
count = 0
for i in students:
if i['成绩'] < 60:
count += 1
print('未及格', count)
b.打印不及格学生的名字和对应的成绩
for i in students:
if i['成绩'] < 60:
print(i['成绩'], i['姓名'])
c.统计未成年学生的个数
count = 0
for i in students:
if i['年龄'] < 18:
count += 1
print('未成年共', count, '人')
d.打印手机尾号是8的学生的名字
for i in students:
if i['电话'][-1] == '8':
print(i['姓名'])
e.打印最高分和对应的学生的名字
scores = 0
for i in students:
if i['成绩'] > scores:
scores = i['成绩']
for i in students:
if i['成绩'] == scores:
print(scores, i['姓名'])
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
students1 = []
b = len(students)
for i in range(b):
scores = 0
for j in students:
if j['成绩'] > scores:
scores = j['成绩']
for k in students:
if scores == k['成绩']:
students1.append(k)
students.remove(k)
students = students1
print(students)
g.删除性别不明的所有学生
for j in range(len(students)):
for i in students:
if i['性别'] == '不明':
students.remove(i)
break
print(students)
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
A = ['小白', '小明', '小李']
B = ['小白', '小花', '小孙']
C = ['小明', '小白', '小翠']
D = A + B + C
a. 求选课学生总共有多少人
E = list(set(D))
print(len(E))
b. 求只选了第一个学科的人的数量和对应的名字
print(A, len(A))
c. 求只选了一门学科的学生的数量和对应的名字
for i in D:
if D.count(i) == 1:
print(D.count(i), i)
d. 求只选了两门学科的学生的数量和对应的名字
for i in D:
if D.count(i) == 2:
print(D.count(i), i)
e. 求选了三门学生的学生的数量和对应的名字
for i in D:
if D.count(i) == 3:
print(D.count(i), i)