• 练习 : 数据类型之字典


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

    student1 = {'name': '张三', 'age': 20, 'grade': 80, 'tel': '13888888888', 'gender': '男'}
    

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

    students = [
        {'name': '无名', 'age': 12, 'grade': 60, 'tel': '13888888881', 'gender': '男'},
        {'name': '掩日', 'age': 22, 'grade': 59, 'tel': '13888888882', 'gender': '不明'},
        {'name': '惊鲵', 'age': 15, 'grade': 93, 'tel': '13888888883', 'gender': '不明'},
        {'name': '胜七', 'age': 21, 'grade': 45, 'tel': '13888888888', 'gender': '男'},
        {'name': '卫庄', 'age': 28, 'grade': 85, 'tel': '13888888885', 'gender': '男'},
        {'name': '盖聂', 'age': 29, 'grade': 80, 'tel': '13888888886', 'gender': '男'}]
    # a.统计不及格学生的个数
    # b.打印不及格学生的名字和对应的成绩
    count1 = 0
    for student1 in students:
        if student1['grade'] < 60:
            count1 += 1
            print(student1['name'], student1['grade'])
    print('不及格的学生个数为:',count1)
    
    # c.统计未成年学生的个数
    count2 = 0
    for student2 in students:
        if student2['age'] < 18:
            count2 += 1
    print('未成年的学生个数为:',count2)
    
    # d.打印手机尾号是8的学生的名字
    for student3 in students:
        if list(student3['tel'])[-1] == '8':
            print(student3['name'])
    
    # e.打印最高分和对应的学生的名字
    max_grade = students[0]
    for student4 in students:
        if student4['grade'] > max_grade['grade']:
            max_grade = student4
    print(max_grade['name'], max_grade['grade'])
    
    # f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
    
    
    # g.删除性别不明的所有学生
    students2 = students[:]
    for index1 in range(len(students2)):
        if students2[index1]['gender'] == '不明':
            del students[index1]
    print(students)
    

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

    china = {'月儿', '少羽', '天明', '石兰', '扶苏'}
    math = {'端木蓉', '高渐离', '石兰','雪女'}
    english = {'月儿', '天明','石兰','端木蓉', '白凤'}
    
    # a. 求选课学生总共有多少人
    count3 = 0
    for name1 in (china | math | english):
        count3 += 1
    print(count3)
    
    # b. 求只选了第一个学科的人的数量和对应的名字
    只选了语文的
    count4 = 0
    for name2 in (china - (math | english)):
        count4 += 1
        print(name2)
    print('只选了第一个学科的学生的个数:', count4)
    
    # c. 求只选了一门学科的学生的数量和对应的名字
    count4 = 0
    count5 = 0
    count6 = 0
    for name2 in (china - (math | english)):
        count4 += 1
        print(name2)
    for name3 in (math - (china | english)):
        count5 += 1
        print(name3)
    # print('只选了数学的学生的个数:', count5)
    for name4 in (english - (china | math)):
        count6 += 1
        print(name4)
    # print('只选了英语的学生的个数:', count6)
    print('只选了一个学科的学生的个数:', count4+count5+count6)
    
    # d. 求只选了两门学科的学生的数量和对应的名字
    count7 = 0
    set2 = ((china & math) | (china & english) | (math & english)) - (china&math&english)
    for name5 in set2:
        count7 += 1
        print(name5)
    print('只选了两门学科的学生有:', count7)
    
    # e. 求选了三门学生的学生的数量和对应的名字
    count8 = 0
    for name6 in (china&math&english):
        count8 += 1
        print(name6)
    print('选了三门学科的学生有:', count8)
  • 相关阅读:
    makefile简单例子
    js归并排序
    js插入排序
    js堆排序
    js选择排序
    js冒泡算法以及优化
    使用go语言判断不同数据类型
    go使用接口案例排序
    go接口使用案例晓demo
    go面向对象-继承
  • 原文地址:https://www.cnblogs.com/anjhon/p/11892618.html