day8-homework

2019-04-24

1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15454554545}
print(dict1)

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15000000001}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': 15000000002}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': 15000000003}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': 15000000004}
dict5 = {'name': '李旁边', 'age': 24, 'score': 70, 'tel': 15000000005}
dict6 = {'name': '黄大狗', 'age': 20, 'score': 88, 'tel': 15000000006}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
count = 0
for item in student:
    if item['score'] < 60:
        count += 1
print('不及格的学生有%d个' % count)

b.打印不及格学生的名字和对应的成绩

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15000000001}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': 15000000002}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': 15000000003}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': 15000000004}
dict5 = {'name': '李旁边', 'age': 17, 'score': 70, 'tel': 15000000005}
dict6 = {'name': '黄大狗', 'age': 16, 'score': 88, 'tel': 15000000006}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
print('不及格学生的名字和年龄:')
for item in student:
    if item['score'] < 60:
        print(item['name'], item['age'])

c.统计未成年学生的个数

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15000000001}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': 15000000002}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': 15000000003}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': 15000000004}
dict5 = {'name': '李旁边', 'age': 17, 'score': 70, 'tel': 15000000005}
dict6 = {'name': '黄大狗', 'age': 16, 'score': 88, 'tel': 15000000006}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
count = 0
for item in student:
    if item['age'] < 18:
        count += 1
print('未成年学生有%d个' % count)

d.打印手机尾号是8的学生的名字

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': '15000000001'}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': '15000000002'}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': '15000000003'}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': '15000000018'}
dict5 = {'name': '李旁边', 'age': 17, 'score': 70, 'tel': '15000000028'}
dict6 = {'name': '黄大狗', 'age': 16, 'score': 88, 'tel': '15000000006'}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
count = 0
print('手机尾号是8的学生的名字:')
for item in student:
    if item['tel'][-1] == '8':
        print(item['name'], end=' ')
print()

e.打印最高分和对应的学生的名字

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15000000001}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': 15000000002}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': 15000000003}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': 15000000018}
dict5 = {'name': '李旁边', 'age': 17, 'score': 70, 'tel': 15000000028}
dict6 = {'name': '黄大狗', 'age': 16, 'score': 88, 'tel': 15000000006}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
sum1 = []
print('最高分的名字和年龄:')
for item in student:
    sum1.append(item['score'])
print(max(sum1), end=' ')
for item in student:
    if item['score'] == max(sum1):
        print(item['name'])

f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15000000001}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': 15000000002}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': 15000000003}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': 15000000018}
dict5 = {'name': '李旁边', 'age': 17, 'score': 92, 'tel': 15000000028}
dict6 = {'name': '黄大狗', 'age': 16, 'score': 88, 'tel': 15000000006}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
student1 = []
student1.append(dict1)
i = 1
# 把旧列表的元素插入到新列表的合适位置,使其有序
while i < len(student):
    j = len(student1) - 1
    count = 0
    while j >= 0:  # 从后往前遍历student1,找出比其中比i小的个数
        if student[i]['score'] > student1[j]['score']:
            count += 1
        j -= 1
    student1.insert(len(student1)-count, student[i])
    i += 1
for x in student1:
    print(x)

# 法2 直接插入
dict1 = {'name': '雍新有', 'age': 23, 'score': 91, 'tel': 15000000001}
dict2 = {'name': '沈不冷', 'age': 22, 'score': 60, 'tel': 15000000002}
dict3 = {'name': '燕赵歌', 'age': 19, 'score': 45, 'tel': 15000000003}
dict4 = {'name': '王隔壁', 'age': 20, 'score': 50, 'tel': 15000000004}
dict5 = {'name': '李旁边', 'age': 17, 'score': 70, 'tel': 15000000005}
dict6 = {'name': '黄大狗', 'age': 16, 'score': 88, 'tel': 15000000006}
student = [dict1, dict2, dict3, dict4, dict5, dict6]
for x in range(1, len(student)):
    temp = student[x]
    index = x
    for y in range(x-1, -1, -1):
        # 这里用temp['score'],不用student[x]['score'],因为student在变。
        if temp['score'] > student[y]['score']:
            student[y+1] = student[y]
            index = y
    student[index] = temp

for x in student:
    print(x)

3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)

a. 求选课学生总共有多少人

English = ['王大', '刘二', '张三', '李五', '龙傲天']
Math = ['王大', '张三', '叶凡', '消炎', '李五']
Chinese = ['唐三', '大黄', '阿飞', '张三', '沈冷']
new_stu = English + Math + Chinese
print('选课学生共有%d人' % len(set(new_stu)))

b. 求只选了第一个学科的人的数量和对应的名字

English = ['王大', '刘二', '张三', '李五', '龙傲天']
Math = ['王大', '张三', '叶凡', '消炎', '李五']
Chinese = ['唐三', '大黄', '阿飞', '张三', '沈冷']
new_stu = English + Math + Chinese
print('只选第一门课英语的人有:', end=' ')
count = 0
for index in range(len(English)):
    if new_stu.count(new_stu[index]) == 1:
        print(new_stu[index], end=' ')
        count += 1
print()
print('只选第一门课(英语)共有%d个人' % count)

c. 求只选了一门学科的学生的数量和对应的名字\

English = ['王大', '刘二', '张三', '李五', '龙傲天']
Math = ['王大', '张三', '叶凡', '消炎', '李五']
Chinese = ['唐三', '大黄', '阿飞', '张三', '沈冷']
new_stu = English + Math + Chinese
count = 0
print('只选一门学科的人有:', end=' ')
for item in new_stu:
    if new_stu.count(item) == 1:
        count += 1
        print(item, end=' ')
print()
print('只选一门学科的共有%d人' % count)

d. 求只选了两门学科的学生的数量和对应的名字

English = ['王大', '刘二', '张三', '李五', '龙傲天']
Math = ['王大', '张三', '叶凡', '消炎', '李五']
Chinese = ['唐三', '大黄', '阿飞', '张三', '沈冷']
new_stu = English + Math + Chinese
stu1 = []
for item in new_stu:    # 统计选2门课的人存到new_stu
    if new_stu.count(item) == 2:
        stu1.append(item)
set1 = set(stu1)       # 除去重复的名字
print('只选两门学科的人有:', end=' ')
for x in set1:
    print(x, end=' ')
print()
print('只选两门学科的共有%d人' % (len(stu1)//2))

e. 求选了三门学生的学生的数量和对应的名字

English = ['王大', '刘二', '张三', '李五', '龙傲天']
Math = ['王大', '张三', '叶凡', '消炎', '李五']
Chinese = ['唐三', '大黄', '阿飞', '张三', '沈冷']
new_stu = English + Math + Chinese
stu1 = []
for item in new_stu:    # 统计选3门课的人存到new_stu
    if new_stu.count(item) == 3:
        stu1.append(item)
set1 = set(stu1)       # 除去重复的名字
print('选了三门学科的人有:', end=' ')
for x in set1:
    print(x, end=' ')
print()
print('选了三门学科的共有%d人' % (len(stu1)//3))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话 2.声明一个列表,在列表中保...
    不语sun阅读 1,486评论 0 0
  • 1. 声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话 2. 声明一个列表,在列表...
    火星人_ef5b阅读 4,446评论 0 0
  • 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话 2.声明一个列表,在列表中保...
    晓刚啦阅读 1,193评论 0 0
  • 有些事情保持的久了就会成为习惯,比如早睡早起,锻炼身体。单身时间久了也会成为一种习惯。我发现在我的交际圈里,...
    尘心无畏阅读 2,256评论 0 0
  • 晨晓扶林接碧海。故乡大地,黄土飞扬,看风吹起千万尘,迷了追风人的眼,乱了逐尘者的心。 迎新大节时,最热闹的日子里最...
    上官可可lhj阅读 1,558评论 0 0

友情链接更多精彩内容