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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350