day6-字典习题

本文通过实例代码详细介绍了如何使用Python进行字典操作,包括创建字典、遍历、查找及修改元素等。此外,还展示了如何对列表进行综合操作,如统计不及格和未成年学生、按成绩排序、筛选特定条件的学生等。同时,文章还探讨了多个列表表示多门学科选课情况的处理,包括统计选课人数、筛选只选一门课程的学生等。
摘要由CSDN通过智能技术生成

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

student = {'name':'bluestar', 'age':'18', '成绩':'120', '电话':18882307609, '性别':'男'}
print(student)

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

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

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

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

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

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

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

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

student = [
    {'name': 'bluestar', 'age': '22', '成绩': 80, '电话': 18882307609, '性别': '男'},
    {'name': '赵灵儿', 'age': '17', '成绩': 90, '电话': 18888454388, '性别': '女'},
    {'name': '李逍遥', 'age': '20', '成绩': 59, '电话': 18121807802, '性别': '男'},
    {'name': '王意如', 'age': '19', '成绩': 58, '电话': 11881307609, '性别': '女'},
    {'name': '邪剑仙', 'age': '100', '成绩': 36, '电话': 18883213600, '性别': '不明'},
]
n = 0
a = 0
m = 0
for x in student:
    if x['成绩'] < 60:
        n += 1
        print(x['name'], x['成绩'])
    if int(x['age']) < 18:
        a += 1
    if int(x['电话']) % 10 == 8:
        print('手机尾号是8的学生名字=', x['name'])
print('未成年学生成绩 =', a)
print('不及格学生人数 =', n)
for x in student:
    if x['成绩'] > m:
        m = x['成绩']
for x in student:
    if x['成绩'] == m:
        print('成绩最高学生的名字 =', x['name'])

m1 = 0
for n1 in range(0, len(student)-1):
    for m1 in range(m1, len(student)-1):
        if student[n1]['成绩'] < student[m1]['成绩']:
            i = student[n1]
            student[n1] = student[m1]
            student[m1] = i
m1 += 1
print(student)

for x in student:
    if x['性别'] == '不明':
        x.clear()
print(student)
'''

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

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

chinese = ['张三', '郑九', '王五', '赵六']
english = ['刘七', '李四', '王五', '赵六']
math = ['张三', '李四', '周八', '赵六']
n = chinese + english + math
print(set(n))

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

n1 = 0
for x in chinese:
    if x not in english and x not in math:
        n1 += 1
        print(x, n1)

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

n1, n2, n3 = 0, 0, 0
n1, n2, n3 = 0, 0, 0
for x in chinese:
    if x not in english and x not in math:
        n1 += 1
        print("只选择语文", x)
for y in english:
    if y not in chinese and y not in math:
        n2 += 1
        print("只选择英语", y)
for z in math:
    if z not in english and z not in chinese:
        n3 += 1
        print("只选择数学", z)
print("只选择一科的总人数 = ", n1+n2+n3)

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

n1, n2, n3 = 0, 0, 0
for x in chinese:
    if x in english and x not in math :
        n1 += 1
        print("选择英语和语文", x)
for y in english:
    if y not in chinese and y in math:
        n2 += 1
        print("只选择英语和数学", y)
for z in math:
    if z not in english and z in chinese:
        n3 += 1
        print("选择语文和数学", z)
print("只选择两科的总人数 = ", n1+n2+n3)

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

n1, n2, n3 = 0, 0, 0
for x in chinese:
    if x in english and x in math :
        n1 += 1
        print("选择三科的学生", x)
print("只选择两科的总人数 = ", n1)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虎啸君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值