day7作业

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

students = {'name': '小明', 'age': 18, 'chinese': '90', 'math': '89', 'tel': 12345, 'gender': '男'}
print(students)

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}
]

count = 0
for grade in students:
    if grade['grade'] < 60:
        count += 1
print('不及格人数:', count)
#不及格人数: 2

b.打印不及格学生的名字和对应的成绩

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}
]

for student in students:
    if student['grade'] < 60:
       print(student['name'], student['grade'])
#王五 56
#刘东 49

c.统计未成年学生的个数

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}
]

count = 0
for student in students:
    if student['age'] < 18:
        count += 1
print('未成年人数:', count)
#未成年人数: 3

d.打印手机尾号是8的学生的名字

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}
]

for student in students:
    if student['tel'][-1] == '8':
        print(student['name'])
#刘东

e.打印最高分和对应的学生的名字

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}
]

student_grade_max = 0
name = ''
for student in students:
    if student['grade'] > student_grade_max:
        student_grade_max = student['grade']
        name = student['name']
print(name, student_grade_max)
#小花 91

f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}
]

grade = []
for student in students:
    grade.append(student['grade'])
grade.sort(reverse=True)
print(grade)

new_students = []
for score in grade:
    for student in students:
        if student['grade'] == score:
            new_students.append((student))
            students.remove(student)
            break
print(new_students)


g.删除性别不明的所有学生

students =[
    {'name': '小明', 'age': 18, 'grade': 90, 'tel': 12345, 'gender': '男'},
    {'name': '张三', 'age': 16, 'grade': 89, 'tel': 13214, 'gender': '男'},
    {'name': '王五', 'age': 20, 'grade': 56, 'tel': 24511, 'gender': '男'},
    {'name': '小花', 'age': 17, 'grade': 91, 'tel': 73522, 'gender': '女'},
    {'name': '李梅', 'age': 21, 'grade': 81, 'tel': 52131, 'gender': '女'},
    {'name': '周飞', 'age': 20, 'grade': 88, 'tel': 23411, 'gender': '不明'},
    {'name': '刘东', 'age': 15, 'grade': 49, 'tel': 98798, 'gender': '男'}


]

for student in students:
    if student['gender'] == '不明':
        del student['name'], student['age'], student['grade'], student['tel'], student['gender']
print(students)

3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人

chinese = {'小明', '张三', '李梅', '刘东', '小花', '钱海'}
math = {'李梅', '刘东', '周飞', '赵二', '张三'}
english = {'王五', '小花', '小明', '小黑', '冯七', '张三'}


set1 = chinese | math | english
list1 = list(set1)
print('选课人数:', len(list1))   #选课人数: 11

b. 求只选了第一个学科的人的数量和对应的名字

chinese = {'小明', '张三', '李梅', '刘东', '小花', '钱海'}
math = {'李梅', '刘东', '周飞', '赵二', '张三'}
english = {'王五', '小花', '小明', '小黑', '冯七', '张三'}

set2 = (chinese - math) & (chinese - english)
list2 = list(set2)
print('只选了第一个学科的人:', len(list2), list2[:])
#只选了第一个学科的人: 1 ['钱海']

c. 求只选了一门学科的学生的数量和对应的名字

chinese = {'小明', '张三', '李梅', '刘东', '小花', '钱海'}
math = {'李梅', '刘东', '周飞', '赵二', '张三'}
english = {'王五', '小花', '小明', '小黑', '冯七', '张三'}

set3 = chinese ^ math and chinese ^ english
print('只选了一门学科的人:', len(set3), set3)
#只选了一门学科的人: 6 {'钱海', '王五', '周飞', '小黑', '赵二', '冯七'}

d. 求只选了两门学科的学生的数量和对应的名字

chinese = {'小明', '张三', '李梅', '刘东', '小花', '钱海'}
math = {'李梅', '刘东', '周飞', '赵二', '张三'}
english = {'王五', '小花', '小明', '小黑', '冯七', '张三'}

set5 = (chinese & math) - english
set6 = (math & english) - chinese
set7 = (chinese & english) - math
set8 = set5 | set6 | set7
print('只选了两门学科的人:', len(set8), set8)
#只选了两门学科的人: 4 {'小明', '刘东', '小花', '李梅'}

e. 求选了三门学生的学生的数量和对应的名字

chinese = {'小明', '张三', '李梅', '刘东', '小花', '钱海'}
math = {'李梅', '刘东', '周飞', '赵二', '张三'}
english = {'王五', '小花', '小明', '小黑', '冯七', '张三'}

set4 = chinese & math & english
print('选了三门学科的人:', len(set4), set4)
#选了三门学科的人: 1 {'张三'}

你可能感兴趣的:(day7作业)