day8字典作业

这段代码展示了如何使用Python字典存储学生信息,包括姓名、年龄、成绩、电话和性别。接着,对列表中的学生信息进行操作,如统计不及格学生数量,查找未成年不及格学生,计算男生平均年龄,筛选手机尾号为8的学生,找到最高分及对应学生,删除性别不明的学生,以及按成绩排序学生数据。此外,还涉及到班级信息的管理,包括班级名、位置、班主任、讲师和学生列表。
摘要由CSDN通过智能技术生成
  1. 定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别
stu={
    "name":"李浩",
    "age":22,
    "score":99,
    "tel":10086,
    "sex":"男"
}
print(stu)

#结果
{'name': '李浩', 'age': 22, 'score': 99, 'tel': 10086, 'sex': '男'}
  1. 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )

    all_stu = [
        {
            "name": "李浩",
            "age": 22,
            "score": 58,
            "tel": 10086,
            "sex": "男"
        },
        {
            "name": "张媛媛",
            "age": 21,
            "score": 100,
            "tel": 155554,
            "sex": "女"
        },
        {
            "name": "李建国",
            "age": 23,
            "score": 70,
            "tel": 101,
            "sex": "男"
        },
        {
            "name": "李建平",
            "age": 22,
            "score": 33,
            "tel": 1008611,
            "sex": "男"
        },
        {
            "name": "李鹏辉",
            "age": 24,
            "score": 85,
            "tel": 135896,
            "sex": "男"
        },
        {
            "name": "张建平",
            "age": 20,
            "score": 90,
            "tel": 16954,
            "sex": "男"
        }
    ]
    
    1. 统计不及格学生的个数

      count=0
      for i in all_stu:
          if i["score"]<60:
              count+=1
      print(count)
      #结果
      2
      
    2. 打印不及格未成年学生的名字和对应的成绩

      for i in all_stu:
          if i["score"]<60 and i["age"]<18:
      
              print(i["score"],i["name"])
              
      #结果
       58 ,李浩    
      
    3. 求所有男生的平均年龄

      sum=0
      for i in all_stu:
          if i["sex"]=="男":
              sum+=i["age"]
      print(sum/len(i))
      
      #结果
      21.0
      
    4. 打印手机尾号是8的学生的名字

      for i in all_stu:
          if i["tel"]%10==8:
              print(i["name"])
              
      #结果
      李建平
      
    5. 打印最高分和对应的学生的名字

      max1=student[0].get("score")
      for i in student:
          if i["score"]>max1:
              max1=i["score"]
              print(max1,i["name"])
              
              
              #
              
              100 张媛媛
      
    6. 删除性别不明的所有学生

      for i in student:
          if i["sex"]=="不明":
              student.remove(i)
              print(student)
              
      
    7. 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

  2. 定义一个变量保存一个班级的信息,班级信息中包括:班级名称、教室位置、班主任信息、讲师信息、班级所有的学生(根据实际情况确定数据类型和具体信息)

    
    classroom={
        "name":"java",
        "location":"肖家河",
        "leader":"婷姐",
        "speaker":"丽姐",
        "stu":[
    
                {
                    "name": "李浩",
                    "age": 16,
                    "score": 58,
                    "tel": 10086,
                    "sex": "男"
                },
                {
                    "name": "张媛媛",
                    "age": 21,
                    "score": 100,
                    "tel": 155554,
                    "sex": "女"
                },
                {
                    "name": "李建国",
                    "age": 23,
                    "score": 70,
                    "tel": 101,
                    "sex": "男"
                },
                {
                    "name": "李建平",
                    "age": 22,
                    "score": 33,
                    "tel": 1008618,
                    "sex": "男"
                },
                {
                    "name": "李鹏辉",
                    "age": 24,
                    "score": 85,
                    "tel": 135896,
                    "sex": "男"
                },
                {
                    "name": "张建平",
                    "age": 20,
                    "score": 90,
                    "tel": 16954,
                    "sex": "男"
                }
            
        ]
    }
    
  3. 已知一个列表保存了多个狗对应的字典:

    dogs = [
      {'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'},
      {'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2},
      {'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'},
      {'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1},
      {'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2},
      {'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'}
    ]
    
    1. 利用列表推导式获取所有狗的品种

      [‘银狐’, ‘法斗’, ‘土狗’, ‘哈士奇’, ‘银狐’, ‘土狗’]

      result=[i["breed"] for i in dogs]
      print(result)
      
    2. 利用列表推导式获取所有白色狗的名字

      [‘贝贝’, ‘可乐’]

      result=[i["name"] for i in dogs if i["color"]=="白色"]
      print(result)
      
    3. 给dogs中没有性别的狗添加性别为 ‘公’

      result = [i.setdefault("gender", "公") for i in dogs]
      print(dogs)
      
      
    4. 统计 ‘银狐’ 的数量

    count=0
    for i in dogs:
      if i["breed"]=="银狐":
        count+=1
    print(count)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值