zoukankan      html  css  js  c++  java
  • python字典练习01


    1. 声明一个字典保存一个学生的信息,学生信息中包括:姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
    student = {'name':'zhangsan','age':20,'grade':85,'tel':'13927487648','gender':'female'}
    print(student)
    
    1. 声明一个列表,在列表中保存多个学生的信息
    students = [
        {'name': 'zhangsan', 'age': 20, 'grade': 85, 'tel': '13927487648', 'gender': 'female'},
        {'name': 'jack', 'age': 17, 'grade': 96, 'tel': '13923456654', 'gender': 'male'},
        {'name': 'ross', 'age': 23, 'grade': 77, 'tel': '13923678678', 'gender': 'female'},
        {'name': 'lisi', 'age': 15, 'grade': 58, 'tel': '13926558764', 'gender': 'unknown'},
        {'name': 'wangwu', 'age': 19, 'grade': 78, 'tel': '13926787864', 'gender': 'unknown'},
        {'name': '李白', 'age': 23, 'grade': 96, 'tel': '13927434556', 'gender': 'male'},
        {'name': '露娜', 'age': 22, 'grade': 48, 'tel': '13927412348', 'gender': 'female'},
        {'name': '火舞', 'age': 17, 'grade': 95, 'tel': '13927413333', 'gender': 'unknown'},
    ]
    

    (1) 统计不及格学生的个数

    (2)打印不及格学生的名字和对应的成绩

    (3)统计未成年学生的个数

    (4)打印手机尾号是8的学生的名字

    (5)打印最高分和对应的学生的名字

    (6)删除性别不明的所有学生(这个地方有个坑,挑不出来的话大家可以在群里套路,或者等老师的解答)

    (7)将列表按学生成绩从大到小排序

    python程序

    # (1) 统计不及格学生的个数
    # (3)统计未成年学生的个数
    count = 0  # 不及格学生个数计数
    teen_count = 0  # 未成年个数计数
    for student in students:
        if student['grade'] < 60:
            count += 1
        if student['age'] < 18:
            teen_count += 1
    print('不及格的学生有%d个' % count)
    print('未成年的学生有{}个'.format(teen_count))
    
    # (2)打印不及格学生的名字和对应的成绩
    for student in students:
        if student['grade'] < 60:
            print('%s不及格,成绩是%d' % (student['name'], student['grade']))
    
    # (4)打印手机尾号是8的学生的名字
    # 方法一
    for student in students:
        if student['tel'].endswith('8'):  # 使用字符串的endwith()方法
            print('%s的手机尾号是8' % student['name'])
    print('--------------------------------------------')
    # 方法二
    for student in students:
        if student['tel'][-1] == '8':
            print('%s的手机尾号是8' % student['name'])
    
    # (5)打印最高分和对应的学生的名字
    # 先找出最高分,再找出最高分对应的学生
    max_grade = 0  # 存储最高分
    for student in students:
        if student['grade'] > max_grade:
            max_grade = student['grade']
    print('最高分是%d' % max_grade)
    for student in students:
        if student['grade'] == max_grade:
            print('%s是最高分' % student['name'])
    
    # (6)删除性别不明的所有学生(这个地方有个坑,挑不出来的话大家可以在群里套路,或者等老师的解答)
    # 方法一
    new_students = [student for student in students if student['gender'] != 'unknown']
    print(new_students)
    # 方法二
    new_students = []	#创建空列表存储不是'unknown'的元素,反向思考
    for student in students:
        if student['gender'] != 'unknown':
            new_students.append(student)
    print(new_students)
    # 方法三
    i = 0
    while i < len(students):
        if students[i]['gender'] == 'unknown':
            del students[i]         #删除列表元素会使列表长度减一
            i -= 1					#减一防止相邻的元素被跳过
        i += 1
    print(students)
    
    # (7)将列表按学生成绩从大到小排序
    for i in range(len(students)):
        for index in range(len(students) - 1 - i):
            if students[index]['grade'] < students[index + 1]['grade']:
                students[index], students[index + 1] = students[index + 1], students[index]
    print(students)
    

    加油!

  • 相关阅读:
    超详细:idea中同一项目同时使用Git与SVN,切换版本控制
    MailKit在.NetCore5下发送邮件 An error occurred while attempting to establish an SSL or TLS connection
    ClickHouse学习系列之七【系统命令介绍】
    ClickHouse学习系列之六【访问权限和账户管理】
    ClickHouse学习系列之五【系统库system说明】
    ClickHouse学习系列之四【副本&分片部署说明】
    MongoDB4.2 分片扫盲说明
    MongoDB4.2 副本集扫盲说明
    【工程应用一】 多目标多角度的快速模板匹配算法(基于NCC,效果无限接近Halcon中........)
    【工程应用四】 基于形状的多目标多角度的高速模板匹配算法进一步研究。
  • 原文地址:https://www.cnblogs.com/augustine0654/p/13873710.html
Copyright © 2011-2022 走看看