2019-07-30 day7

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

你可能感兴趣的:(2019-07-30 day7)