day6作业

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

{'姓名': '小张', '年龄': 24, '成绩': 49, '电话': '1519887854', '性别': '男'}

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)

students = [{'姓名': '小张', '年龄': 24, '成绩': 49, '电话': '1519887854', '性别': '男'},
            {'姓名': '小花', '年龄': 22, '成绩': 51, '电话': '1548586858', '性别': '男'},
            {'姓名': '小明', '年龄': 25, '成绩': 62, '电话': '1519454566', '性别': '男'},
            {'姓名': '小黄', '年龄': 26, '成绩': 82, '电话': '1575487854', '性别': '女'},
            {'姓名': '小李', '年龄': 28, '成绩': 81, '电话': '1585845665', '性别': '男'},
            {'姓名': '小白', '年龄': 29, '成绩': 75, '电话': '1574743456', '性别': '不明'}]

​ a.统计不及格学生的个数

count = 0
for i in students:
    if i['成绩'] < 60:
        count += 1
print('未及格', count)

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

for i in students:
    if i['成绩'] < 60:
        print(i['成绩'], i['姓名'])

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

count = 0
for i in students:
    if i['年龄'] < 18:
        count += 1
print('未成年共', count, '人')

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

for i in students:
    if i['电话'][-1] == '8':
        print(i['姓名'])

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

scores = 0
for i in students:
    if i['成绩'] > scores:
        scores = i['成绩']
for i in students:
    if i['成绩'] == scores:
        print(scores, i['姓名'])

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

students1 = []
b = len(students)
for i in range(b):
    scores = 0
    for j in students:
        if j['成绩'] > scores:
            scores = j['成绩']
    for k in students:
        if scores == k['成绩']:
            students1.append(k)
            students.remove(k)

students = students1
print(students)

​ g.删除性别不明的所有学生

for j in range(len(students)):
    for i in students:
        if i['性别'] == '不明':
            students.remove(i)
            break
print(students)

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

A = ['小白', '小明', '小李']
B = ['小白', '小花', '小孙']
C = ['小明', '小白', '小翠']
D = A + B + C

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

E = list(set(D))
print(len(E))
b. 求只选了第一个学科的人的数量和对应的名字
print(A, len(A))

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

for i in D:
    if D.count(i) == 1:
        print(D.count(i), i)
d. 求只选了两门学科的学生的数量和对应的名字
for i in D:
    if D.count(i) == 2:
        print(D.count(i), i)

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

for i in D:
    if D.count(i) == 3:
        print(D.count(i), i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值