1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
dict1 = {
'name': '马狗',
'age': 21,
'score': 3,
'tel': 250,
'gender': '不明'
}
print(dict1)
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.删除性别不明的所有学生
g.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
list1 = [
{'name': '马狗', 'age': 21, 'score': 13, 'tel': 250, 'gender': '不明'},
{'name': '邝狗', 'age': 12, 'score': 95, 'tel': 110, 'gender': '女'},
{'name': '郑狗', 'age': 30, 'score': 87, 'tel': 120, 'gender': '男'},
{'name': '魏狗', 'age': 56, 'score': 29, 'tel': 118, 'gender': '女'},
{'name': '翁狗', 'age': 34, 'score': 59, 'tel': 911, 'gender': '男'},
{'name': '蒋爹', 'age': 18, 'score': 100, 'tel': 999, 'gender': '男'}
]
# a.统计不及格学生的个数
count = 0
for x in list1:
if x['score'] < 60:
count += 1
print(count)
# b.打印不及格学生的名字和对应的成绩
for x in list1:
if x['score'] < 60:
print(x['name'], x['score'])
# c.统计未成年学生的个数
count = 0
for x in list1:
if x['age'] < 18:
count += 1
print(count)
# d.打印手机尾号是8的学生的名字
for x in list1:
if x['tel'] % 10 == 8:
print(x)
# e.打印最高分和对应的学生的名字
max_score = list1[0]['score']
for x in list1:
if x['score'] > max_score:
max_score = x['score']
for x in list1:
if x['score'] == max_score:
print(x)
# f.删除性别不明的所有学生
for x in list1:
if x['gender'] == '不明':
list1.remove(x)
print(list1)
# g.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
list1.sort(key=lambda x: x['score'], reverse=True)
print(list1)
3.用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字
lan = {'马狗', '邝狗', '郑狗', '魏狗'}
mat = {'马狗', '郑狗', '翁狗', '蒋爹'}
eng = {'马狗', '魏狗', '蒋爹'}
# a. 求选课学生总共有多少人
print(len(lan | mat | eng))
# b. 求只选了第一个学科的人的数量和对应的名字
count = 0
for x in (lan - (mat | eng)):
count += 1
print(count, (lan - (mat | eng)))
# c. 求只选了一门学科的学生的数量和对应的名字
count = 0
for x in ((lan ^ mat ^ eng) - (lan & mat & eng)):
count += 1
print(count, (lan ^ mat ^ eng) - (lan & mat & eng))
# d. 求只选了两门学科的学生的数量和对应的名字
count = 0
for x in ((lan & mat - eng) | (lan & eng - mat) | (mat & eng) - lan):
count += 1
print(count, (lan & mat - eng) | (lan & eng - mat) | (mat & eng) - lan)
# e. 求选了三门学生的学生的数量和对应的名字
count = 0
for x in (lan & mat & eng):
count += 1