1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
dict_stu = {
'stu1': {'name': '杨斌', 'age': 22, 'grade': 86, 'phone': '11566545898', 'gender': '女'},
'stu2': {'name': '徐刚', 'age': 21, 'grade': 50, 'phone': '13154565461', 'gender': '男'},
'stu3': {'name': '王力', 'age': 23, 'grade': 99.5, 'phone': '18888888888', 'gender': '男'},
'stu4': {'name': '喵源', 'age': 24, 'grade': 80, 'phone': '13454587845', 'gender': '男'},
'stu5': {'name': '杨俊明', 'age': 20, 'grade': 32, 'phone': '14578454554', 'gender': '女'},
'stu6': {'name': '王雷', 'age': 25, 'grade': 88, 'phone': '12354587845', 'gender': '男'},
'stu7': {'name': '孙悟空', 'age': 8000, 'grade': 0, 'phone': 'None', 'gender': '猴'},
}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
n = 0
for stu in dict_stu:
if dict_stu[stu]['grade'] < 60:
n += 1
print(n)
b.打印不及格学生的名字和对应的成绩
for stu in dict_stu:
if dict_stu[stu]['grade'] < 60:
print(dict_stu[stu]['name'],dict_stu[stu]['grade'])
c.统计未成年学生的个数
m = 0
for stu in dict_stu:
if dict_stu[stu]['age'] < 18:
m += 1
print(m)
d.打印手机尾号是8的学生的名字
phone_8 = None
for stu in dict_stu:
if (dict_stu[stu]['phone'])[-1] == '8':
phone_8 = dict_stu[stu]['phone']
print(dict_stu[stu]['name'], phone_8)
e.打印最高分和对应的学生的名字
max_grade = 0
for stu in dict_stu:
if dict_stu[stu]['grade'] > max_grade:
max_grade = dict_stu[stu]['grade']
for stu in dict_stu:
if dict_stu[stu]['grade'] == max_grade:
print(dict_stu[stu]['name'], max_grade)
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
list_grade = []
for stu in dict_stu:
a = dict_stu[stu]['grade']
list_grade.append(a)
list_grade.sort(reverse=True)
print(list_grade)
g.删除性别不明的所有学生
dict_stu = [
{'name': '杨斌', 'age': 22, 'grade': 86, 'phone': '11566545898', 'gender': '女'},
{'name': '徐刚', 'age': 21, 'grade': 50, 'phone': '13154565461', 'gender': '男'},
{'name': '王力', 'age': 23, 'grade': 99.5, 'phone': '18888888888', 'gender': '男'},
{'name': '喵源', 'age': 24, 'grade': 80, 'phone': '13454587845', 'gender': '男'},
{'name': '杨俊明', 'age': 20, 'grade': 32, 'phone': '14578454554', 'gender': '女'},
{'name': '王雷', 'age': 25, 'grade': 88, 'phone': '12354587845', 'gender': '男'},
{'name': '孙悟空', 'age': 8000, 'grade': 0, 'phone': 'None', 'gender': '猴'},
]
for stu in dict_stu:
if (stu['gender'] != '男') and (stu['gender'] != '女'):
del dict_stu[dict_stu.index(stu)]
print(dict_stu)
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
history_class = ['徐刚', '王力', '苗源', '高中天', '杨俊明', '王雷', '王力宏']
science_class = ['杨斌', '苗源', '高中天', '王雷']
animo_class = [ '徐刚', '王力', '高中天', '杨俊明']
h = set(history_class)
s = set(science_class)
a = set(animo_class)
a. 求选课学生总共有多少人
stu = h | s | a
print(len(stu))
b. 求只选了第一个学科的人的数量和对应的名字
print(h - a - s)
c. 求只选了一门学科的学生的数量和对应的名字
n = 0
for stu1 in h:
if stu1 not in s:
if stu1 not in a:
n += 1
print(stu1)
for stu2 in s:
if stu2 not in h:
if stu2 not in a:
n += 1
print(stu2)
for stu3 in a:
if stu3 not in h:
if stu3 not in s:
n += 1
print(stu3)
print('共有,', n, '人')
print((h - s - a) | (s - h - a) | (a - h - s),len((h - s - a) | (s - h - a) | (a - h - s)))
d. 求只选了两门学科的学生的数量和对应的名字
print((h & s - a) | (h & a -s) | (a & s -h),len(print((h & s - a) | (h & a -s) | (a & s -h)))
e. 求选了三门学生的学生的数量和对应的名字
print(h & a & s,len(h & a & s))