DAY07-作业

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

student = {'姓名': '伊万科夫', '年龄': 23, '成绩(数学)': 20, 'tel': 133324587433, 'Gender': '不明'}

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

students = [
    {'姓名': '草帽小子', '年龄': 23, '成绩(数学)': 20, 'tel': 13332458733, 'Gender': '男'},
    {'姓名': '色厨子', '年龄': 21, '成绩(数学)': 60, 'tel': 13332487433, 'Gender': '男'},
    {'姓名': '绿藻头', '年龄': 22, '成绩(数学)': 80, 'tel': 13324587433, 'Gender': '男'},
    {'姓名': '狸猫', '年龄': 16, '成绩(数学)': 0, 'tel': 13332458743, 'Gender': '不明'},
    {'姓名': '骗人布', '年龄': 22, '成绩(数学)': 90, 'tel': 13324587438, 'Gender': '男'}
]

a.统计不及格学生的个数

count1 = 0
for student in students:
    if student['成绩(数学)'] < 60:
        count1 += 1
print(count1)

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

for student in students:
    if student['成绩(数学)'] < 60:
        print(student['姓名'], student['成绩(数学)'])

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

count1 = 0
for student in students:
    if student['年龄'] < 18:
        count1 += 1
print(count1)

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

    if student['tel'][-1] == '8':
        print(student['姓名'])

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

min_scores = students[0]['成绩(数学)']
for student in students:
    if student['成绩(数学)'] > max_scores:
        max_scores = student['成绩(数学)']
    if student['成绩(数学)'] < min_scores:
        min_scores = student['成绩(数学)']
for student in students:
    if student['成绩(数学)'] == max_scores:
        print('最高分得主:', student['姓名'])
    if student['成绩(数学)'] == min_scores:
        print('最低分得主:', student['姓名'])

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

for i in range(len(students)-1):
    for j in range(len(students)-1):
        if students[j]['成绩(数学)'] < students[j+1]['成绩(数学)']:
            students[j], students[j+1] = students[j+1], students[j]
print(students)

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

for student in students:
    if student['Gender'] == '不明':
        students.remove(student)
print(students)

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

Discipline1 = ['阿伟', '阿樊', '阿黄', '阿秦', '阿蒋']
Discipline2 = ['阿伟', '阿樊', '阿大', '阿秦', '阿二', '阿三', '阿四']
Discipline3 = ['阿伟', '阿大', '阿二', '阿天', '阿地']

a. 求选课学生总共有多少人

print(len(set(Discipline1+Discipline2+Discipline3)))

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

print(set(Discipline1) - (set(Discipline2) | set(Discipline3)))
print(len(set(Discipline1) - (set(Discipline2) | set(Discipline3))))

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

print(set(Discipline1) ^ set(Discipline2) ^ set(Discipline3) - (set(Discipline1) & set(Discipline2) & set(Discipline3)))
print(len(set(Discipline1) ^ set(Discipline2) ^ set(Discipline3) - (set(Discipline1) & set(Discipline2) & set(Discipline3))))

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

set1 = (set(Discipline1) & set(Discipline2)) | (set(Discipline2) & set(Discipline3)) | (set(Discipline1) & set(Discipline3))
set2 = (set(Discipline1) & set(Discipline2) & set(Discipline3))
print(set1 - set2)
print(len(set1-set2))

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

print(set(Discipline1) & set(Discipline2) & set(Discipline3))
print(len(set(Discipline1) & set(Discipline2) & set(Discipline3)))

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