day7-字典作业

本文通过定义一个包含六个学生基本信息的列表,展示了如何使用Python进行数据处理和统计分析,包括不及格学生数量统计、未成年学生数量统计等,并进一步对学生的成绩进行排序及筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )

    students = [
            {'name':'牛大','age':18,'score':66,'tel':'12343564367','gender':'男'},
            {'name':'牛二','age':20,'score':74,'tel':'13498356225','gender':'女'},
            {'name':'牛三','age':19,'score':47,'tel':'15435609258','gender':'男'},
            {'name':'牛四','age':17,'score':88,'tel':'15743682752','gender':'不明'},
            {'name':'牛五','age':24,'score':58,'tel':'17832656926','gender':'女'},
            {'name':'牛牛','age':16,'score':62,'tel':'12534325815','gender':'男'}]
    
    1. 统计不及格学生的个数

      sum1 = 0
      for stu in students:
          if stu['score'] < 60:
              sum1 += 1
      print(sum1)
      
    2. 打印不及格学生的名字和对应的成绩

      for stu in students:
          if stu['score'] < 60:
              print('不及格姓名:', stu['name'], '分数:', stu['score'])
      
    3. 统计未成年学生的个数

      sum1 = 0
      for stu in students:
          if stu['age'] < 18:
              sum1 += 1
      print(sum1)
      
    4. 打印手机尾号是8的学生的名字

      for stu in students:
          if int(stu['tel'][-1]) == 8:
              print(stu['name'])
      
    5. 打印最高分和对应的学生的名字

      Max_score = students[0]['score']
      for stu in students[1:]:
          score = stu['score']
          if score > Max_score:
              Max_score = score
      for stu in students:
          if stu['score'] == Max_score:
              print('最高分:',Max_score,  '名字:',stu['name'])
      
    6. 删除性别不明的所有学生

      for stu in students:
          if stu['gender'] != '不明':
              print(stu)
      
    7. 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

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

    math_students = ['张三', '李四', '王二', '武大']
    lang_students = ['张三', '武大', '牛牛']
    engl_students = ['李四', '王二']
    
    1. 求选课学生总共有多少人

      print(len(math_students + lang_students + engl_students))
      
    2. 求只选了第一个学科的人的数量和对应的名字

      num = 0
      sum1 = math_students + lang_students + engl_students
      for stu in math_students:
          if stu in sum1:
              num += 1
              print(stu, end=' ')
      print('人数:', num)
      
    3. 求只选了一门学科的学生的数量和对应的名字

      sum1 = math_students + lang_students + engl_students
      students = []
      for a in sum1:
          if sum1.count(a) == 1 and a not in students:
              students.append(a)
      print(len(students),students)
      
    4. 求只选了两门学科的学生的数量和对应的名字

      sum1 = math_students + lang_students + engl_students
      students = []
      for a in sum1:
          if sum1.count(a) == 2 and a not in students:
              students.append(a)
      print(len(students),students)
      
    5. 求选了三门学生的学生的数量和对应的名字

           sum1 = math_students + lang_students + engl_students
           students = []
           for a in sum1:
               if sum1.count(a) == 3 and a not in students:
                   students.append(a)
           print(len(students),students)
           ```
      
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值