字典列表作业

# 1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
stu = {'姓名': '小明', 'age': 18, '成绩': 78, '电话': '123456', '性别': '不明'}

# 2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
# 	a.统计不及格学生的个数
# 	b.打印不及格学生的名字和对应的成绩
# 	c.统计未成年学生的个数
# 	d.打印手机尾号是8的学生的名字
# 	e.打印最高分和对应的学生的名字
# 	f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
#   g.删除性别不明的所有学生
studens = [
    {'姓名': '小a', 'age': 18, '成绩': 78, '电话': '123456', '性别': '不明'},
    {'姓名': '小b', 'age': 19, '成绩': 80, '电话': '123456', '性别': '不明'},
    {'姓名': '小c', 'age': 20, '成绩': 80, '电话': '123458', '性别': '不明'},
    {'姓名': '小d', 'age': 21, '成绩': 45, '电话': '123456', '性别': '不明'},
    {'姓名': '小e', 'age': 15, '成绩':  7, '电话': '123458', '性别': '不明'},
    {'姓名': '小f', 'age': 23, '成绩': 78, '电话': '123456', '性别': '不明'},
]
g_grade=0
s_age=0

max_grade=0

for grade in range(len(studens)):
    age1=studens[grade]['age']
    cj=studens[grade]['成绩']
    p_numb=studens[grade]['电话'][-1]

    if cj<60:
        g_grade+=1
        print(studens[grade]['姓名'],studens[grade]['成绩'])
    else:
        max_grade=studens[0]['成绩']
        for i in studens[1:]:
            grades1=i['成绩']
            if grades1 > max_grade:
                max_grade=grades1
        print('最高分:',max_grade)
        for j in studens:
            if j['成绩']==max_grade:
                print(j['姓名'])
    if age1 <18:
        s_age+=1
    if '8' == p_numb:
        print('尾号是8的学生有',studens[grade]['姓名'])

print('不及格的学生有',g_grade,'个','未成年的学生有:',s_age,'个')


grades=[]
studens_list=[]
for grade in range(len(studens)):

    cj=studens[grade]['成绩']
    grades.append(cj)
    grades.sort(reverse=True)
print(grades)

lenth=len(studens)
for i in range(lenth):
    for j in range(i,lenth):
        if studens[j]['成绩']>studens[i]['成绩']:
            studens[j]['成绩'] , studens[i]['成绩']=studens[i]['成绩'],studens[j]['成绩']
print(studens)

for i in studens[:]:
    if i['性别']=='不明':
        studens.remove(i)
print(studens)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值