1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
student = {'name': '小华', 'age': 20, 'score': 80, 'tel': 1398765999, 'gender': '男'}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
all_student = [
{'name': '小华', 'age': 20, 'score': 80, 'tel': '1398765998', 'gender': '男'},
{'name': '小明', 'age': 25, 'score': 60, 'tel': '1288765999', 'gender': '男'},
{'name': '小红', 'age': 18, 'score': 54, 'tel': '1589097799', 'gender': '女'},
{'name': '小张', 'age': 19, 'score': 70, 'tel': '1390005999', 'gender': '不明'},
{'name': '小王', 'age': 28, 'score': 90, 'tel': '1508888888', 'gender': '男'},
{'name': '小李', 'age': 30, 'score': 40, 'tel': '1392222222', 'gender': '男'}
]
a.统计不及格学生的个数
t = 0
for student in all_student:
if student['score'] < 60:
t += 1
print(t)
b.打印不及格学生的名字和对应的成绩
for student in all_student:
if student['score'] < 60:
print(student['name'], student['score'])
c.统计未成年学生的个数
a = 0
for student in all_student:
if student['age'] < 18:
a += 1
print(a)
d.打印手机尾号是8的学生的名字
for student in all_student:
tel1 = list(student['tel'])
# print(tel1)
x = tel1[-1]
# print(x)
if x == '8':
print(student['name'])
e.打印最高分和对应的学生的名字
max_score = 0
for student in all_student:
tel2 = student['score']
if tel2 >= max_score:
max_score = tel2
print('最高分是:', max_score)
for student in all_student:
if student['score'] == max_score:
print('最高分对应的学生是:', student['name'])
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
g.删除性别不明的所有学生
for student in all_student[:]:
if student['gender'] == '不明':
all_student.remove(student)
print(all_student)
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字
python = ['小红', '小明', '小米', '小王', '张飞', '赵云']
math = ['刘备', '小乔', '小红', '张飞']
english = ['大乔', '小红', '刘备', '赵云']
new_python = set(python)
new_math = set(math)
new_english = set(english)
# a.
t = 0
A = new_python | new_math | new_english
for x in A:
t += 1
print('选课学生总数:', t)
# b.
t = 0
list1 = []
for x in python:
list1.append(x)
t += 1
print('只选了第一个学科的人数:', t, list1)
# c.
B = new_python ^ new_math ^ new_english ^ (new_math & new_python & new_english)
t = 0
list2 = []
for x in B:
list2.append(x)
t += 1
print('只选了一门学科的人数:', t, list2)
# d
C = ((new_python & new_math) | (new_python & new_english) | (new_math & new_english)) ^ (new_python & new_math & new_english)
t = 0
list3 = []
for x in C:
list3.append(x)
t += 1
print('只选2门学科的人数:', t, list3)
# e
D = new_python & new_math & new_english
t = 0
list4 = []
for x in D:
list4.append(x)
t += 1
print('选了3门学科的人数:', t, list4)
结果:
选课学生总数: 9
只选了第一个学科的人数: 6 ['小红', '小明', '小米', '小王', '张飞', '赵云']
只选了一门学科的人数: 5 ['小乔', '小明', '小米', '小王', '大乔']
只选2门学科的人数: 3 ['赵云', '张飞', '刘备']
选了3门学科的人数: 1 ['小红']
Process finished with exit code 0