HW
2.a~b
students = [
{'name':'马克', 'age':20, 'score':92, 'phone':'8823662', 'gender':'男'},
{'name':'艾米', 'age':21, 'score':80, 'phone':'8834789', 'gender':'女'},
{'name':'凯西', 'age':22, 'score':99, 'phone':'8823655', 'gender':'女'},
{'name':'雪诺', 'age':17, 'score':76, 'phone':'8823568', 'gender':'男'},
{'name':'布兰德', 'age':19, 'score':54, 'phone':'8823098', 'gender':'男'},
{'name':'温斯特', 'age':20, 'score':59, 'phone':'8823123', 'gender':'lesbian'}
]
count = 0 # 统计不及格学生的个数
# name = ''
student_score = 0
for student in students:
student_score = student['score']
if student_score < 60:
count += 1
name = student['name']
print(name, student['score']) # 打印不及格学生的名字和对应的成绩
print('不及格的学生人数是:', count)
2.c
count1 = 0
for student in students:
student_age = student['age']
if student_age < 18:
count1 += 1
print('未成年学生的个数是:', count1) # 统计未成年学生的个数
2.d
# 打印手机尾号是8的学生的名字
for student in students:
student_phone = student['phone']
if student['phone'][-1] == '8':
name = student['name']
print('手机尾号是8的是:', name)
2.e
# 打印最高分和对应的学生的名字
max_score = 0
for student in students:
student_score = student['score']
if student_score > max_score:
max_score = student_score
name = student['name']
print(name, max_score)
2.f
# 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
list1 = []
for student in students:
student_score = student['score']
list1.append(student_score)
list1.sort(reverse=True)
print(list1)
2.g
# 删除性别不明的所有学生
for student in students:
student_gender = student['gender']
# if student_gender != '男' or student_gender != '女':
if not (student_gender == '男' or student_gender == '女'):
name = student['name']
students.remove(student)
# print(name, student['gender'])
print(students)
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字
course1 = ['Fiona', 'Molly', 'Sarah', 'Zoe', 'pencil','Rita','Divya']
course2 = ['Fiona', 'Zoe', 'May', 'Molly']
course3 = ['Fiona', 'Rose','Ishida']
courses = course1+course2+course3
courses1 =[]
# count = 0
for i in courses:
if not i in courses1:
courses1.append(i)
print(courses1)
count = 0
for j in courses1:
count += 1
print('选课的学生总共有%d个' % count)
count = 0
for x in range(len(course1)):
count += 1
print(count, course1)
student = set(course1) | set(course2) |set(course3)
one_course = (set(course1) - set(course2) - set(course3))| (set(course2) - set(course1) - set(course3))
print(one_course, len(one_course)) # 只选一门
student = set(course1) | set(course2) |set(course3)
one_course = (set(course1) - set(course2) - set(course3))| (set(course2) - set(course1) - set(course3))|\
(set(course3) - set(course1) - set(course2))
three_course = set(course1) & set(course2) &set(course3)
two_course = student - one_course - three_course
print(two_course, len(two_course))
three_course = set(course1) & set(course2) &set(course3)
print(three_course, len(three_course)