1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
student_dic = dict.fromkeys(('姓名','年龄','电话','性别','语文','数学','英语'))
student_dic['姓名'] = 'mike'
student_dic['年龄'] = 12
student_dic['电话'] = '18423901134'
student_dic['性别'] = '男'
student_dic['语文'] = 97
student_dic['数学'] = 74
student_dic['英语'] = 89
print(student_dic)
#{'姓名': 'mike', '年龄': 12, '电话': '18423901134', '性别': '男', '语文': 97, '数学': 74, '英语': 89}
student_dic1 = {'姓名':'mike','年龄':12,'电话':'18423901134','性别':'男','语文':97,'数学':74,'英语':89}
print(student_dic1)
{'姓名': 'mike', '年龄': 12, '电话': '18423901134', '性别': '男', '语文': 97, '数学': 74, '英语': 89}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
student_list = [
{'姓名': 'mike', '年龄': 12, '电话': '18423901134', '性别': '男', '语文': 97, '数学': 74, '英语': 89},
{'姓名': 'jerry', '年龄': 18, '电话': '13987651148', '性别': '女', '语文': 87, '数学': 94, '英语': 81},
{'姓名': 'james', '年龄': 14, '电话': '13723561266', '性别': '男', '语文': 57, '数学': 44, '英语': 62},
{'姓名': 'paul', '年龄': 15, '电话': '14375751234', '性别': '男', '语文': 27, '数学': 94, '英语': 34},
{'姓名': 'lucy', '年龄' : 16, '电话': '18723451188', '性别': '女', '语文': 45, '数学':14, '英语': 96},
{'姓名': 'tom', '年龄': 15, '电话': '13994162231', '性别': '不明', '语文': 95, '数学': 94, '英语': 66}
]
a.统计不及格学生的个数
count = 0
for student in student_list:
if student['语文'] < 60 or student['数学'] < 60 or student['英语'] <60 :
count += 1
print('不及格学生个数:',count)
# 不及格学生个数: 3
b.打印不及格学生的名字和对应的成绩
for student in student_list:
if student['语文'] < 60 or student['数学'] < 60 or student['英语'] <60 :
print('姓名',':',student['姓名'],end=' ')
if student['语文'] < 60:
print('语文',':',student['语文'],end=' ')
if student['数学'] < 60:
print('数学',':',student['数学'],end=' ')
if student['英语'] < 60:
print('英语',':',student['英语'],end=' ')
print('\n')
# 姓名 : james 语文 : 57 数学 : 44
#姓名 : paul 语文 : 27 英语 : 34
#姓名 : lucy 语文 : 45 数学 : 14
c.统计未成年学生的个数
count = 0
for student in student_list:
if student['年龄'] < 18:
count += 1
print('未成年学生个数:',count)
# 未成年学生个数: 5
d.打印手机尾号是8的学生的名字
for student in student_list:
if student['电话'][-1:] == '8':
print(student['姓名'])
#jerry
#lucy
e.打印最高分和对应的学生的名字
max_grade = 0
max_name = ''
for student in student_list:
total = student['语文'] + student['数学'] +student['英语']
if max_grade < total:
max_grade = total
max_name = student['姓名']
print('姓名:',max_name,'最高分:',max_grade)
#姓名: jerry 最高分: 262
f.将列表按学生成绩从大到小排序
for i in range(len(student_list)-1):
for j in range(i,len(student_list)):
total_i = student_list[i]['语文'] + student_list[i]['数学'] + student_list[i]['英语']
total_j = student_list[j]['语文'] + student_list[j]['数学'] + student_list[j]['英语']
if total_i < total_j:
student_list[i],student_list[j] = student_list[j],student_list[i]
for i in student_list:
print(i)
"""
{'姓名': 'jerry', '年龄': 18, '电话': '13987651148', '性别': '女', '语文': 87, '数学': 94, '英语': 81}
{'姓名': 'mike', '年龄': 12, '电话': '18423901134', '性别': '男', '语文': 97, '数学': 74, '英语': 89}
{'姓名': 'tom', '年龄': 15, '电话': '13994162231', '性别': '不明', '语文': 95, '数学': 94, '英语': 66}
{'姓名': 'james', '年龄': 14, '电话': '13723561266', '性别': '男', '语文': 57, '数学': 44, '英语': 62}
{'姓名': 'lucy', '年龄': 16, '电话': '18723451188', '性别': '女', '语文': 45, '数学': 14, '英语': 96}
{'姓名': 'paul', '年龄': 15, '电话': '14375751234', '性别': '男', '语文': 27, '数学': 94, '英语': 34}
"""
g.删除性别不明的所有学生
for student in student_list:
if student['性别'] == '不明':
student_list.remove(student)
for i in student_list:
print(i)
"""
{'姓名': 'mike', '年龄': 12, '电话': '18423901134', '性别': '男', '语文': 97, '数学': 74, '英语': 89}
{'姓名': 'jerry', '年龄': 18, '电话': '13987651148', '性别': '女', '语文': 87, '数学': 94, '英语': 81}
{'姓名': 'james', '年龄': 14, '电话': '13723561266', '性别': '男', '语文': 57, '数学': 44, '英语': 62}
{'姓名': 'paul', '年龄': 15, '电话': '14375751234', '性别': '男', '语文': 27, '数学': 94, '英语': 34}
{'姓名': 'lucy', '年龄': 16, '电话': '18723451188', '性别': '女', '语文': 45, '数学': 14, '英语': 96}
"""
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
chinese = ['james','john','david','jack','lucy','ethan']
math = ['lucy','noah','tyler','mike','luke','john','james']
english = ['james','david','noah','tyler','oliver','mason']
a. 求选课学生总共有多少人
student = set(chinese) | set(math) | set(english)
count = len(student)
print('选课总人数:',count)
#选课总人数: 12
b.求只选了第一个学科的人的数量和对应的名字
print('chinese number:',len(chinese))
for people in chinese:
print(people, end=' ')
#chinese number: 6
#james john david jack lucy ethan
c. 求只选了一门学科的学生的数量和对应的名字
one_course = (set(chinese) - set(math) - set(english)) | (set(math) - set(chinese) - set(english))\
| (set(english) - set(math) - set(chinese))
print(one_course)
print('选择一门课的人数:',len(one_course))
#{'oliver', 'jack', 'ethan', 'mason', 'luke', 'mike'}
#选择一门课的人数: 6
d.求只选了两门学科的学生的数量和对应的名字
student = set(chinese) | set(math) | set(english)
one_course = (set(chinese) - set(math) - set(english)) | (set(math) - set(chinese) - set(english))\
| (set(english) - set(math) - set(chinese))
three_course = set(chinese) & set(math) & set(english)
two_course = student - one_course - three_course
print(two_course)
print('选择两门课的人数:',len(two_course))
#{'david', 'lucy', 'tyler', 'john', 'noah'}
#选择两门课的人数: 5
e. 求选了三门学生的学生的数量和对应的名字
three_course = set(chinese) & set(math) & set(english)
print(three_course)
print('选择三门课的人数:',len(three_course))
#{'james'}
#选择三门课的人数: 1