2019-07-30-作业

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

dict1 = {'name': '小明', 'age': 20, 'score': 90, 'tel': 11837643839, 'gender': '男'}

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
g.删除性别不明的所有学生


list1 = [
    {'name': '小Q', 'age': 16, 'score': 64, 'tel': 11837643839, 'gender': '男'},
    {'name': '小W', 'age': 21, 'score': 38, 'tel': 11837643838, 'gender': '女'},
    {'name': '小E', 'age': 15, 'score': 93, 'tel': 11837643837, 'gender': '不明'},
    {'name': '小R', 'age': 23, 'score': 54, 'tel': 11837643836, 'gender': '不明'},
    {'name': '小T', 'age': 17, 'score': 45, 'tel': 11837643888, 'gender': '男'},
    {'name': '小Y', 'age': 25, 'score': 96, 'tel': 11837643834, 'gender': '女'}
]
n = 0
k = 0
for student in list1:
    score1 = student['score']
    if score1 < 60:
        n += 1
        print(student['name'], score1,)  # b.打印不及格学生的名字和对应的成绩
    age1 = student['age']
    if age1 < 18:
        k += 1
    tel1 = student['tel']
    if tel1 % 10 == 8:
        print(student['name'])  # d.打印手机尾号是8的学生的名字

print(n)   # a.统计不及格学生的个数
print(k)   # c.统计未成年学生的个数k
for student in list1:
    score2 = student['score']
    max_score = 0
    if score2 > max_score:
        max_score = score2
for student in list1:
    score3 = student['score']
    if score3 == max_score:
        print(student['name'])  # e.打印最高分和对应的学生的名字
n = len(list1)
i = 0
for x in range(n):
    for y in range(i+1, n):
        if list1[y]['score'] > list1[x]['score']:
            list1[x], list1[y] = list1[y], list1[x]
    i += 1
print(list1)   # f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

for x in range(n-1, -1, -1):
    if list1[x]['gender'] == '不明':
        del list1[x]
print(list1)   # g.删除性别不明的所有学生

3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

students1 = [1, 2, 3, 4, 5, 6, 7]
students2 = [1, 2, 3, 8, 9, 10, 11]
students3 = [12, 13, 3, 8, 14, 15, 16]
# a. 求选课学生总共有多少人
set1, set2, set3 = set(students1), set(students2), set(students3)
set4 = set1 | set2 | set3
print(len(set4))
# b. 求只选了第一个学科的人的数量和对应的名字
print(set1 - set2 - set3)
print(len(set1 - set2 - set3))
# c. 求只选了一门学科的学生的数量和对应的名字
print((set1 ^ set2 ^ set3) - (set1 & set2 & set3))
print(len((set1 ^ set2 ^ set3) - (set1 & set2 & set3)))
# d. 求只选了两门学科的学生的数量和对应的名字
set5 = (set4 -(set1 ^ set2 ^ set3))
print(set5)
print(len(set5))
# e. 求选了三门学生的学生的数量和对应的名字
print(set1 & set2 & set3)
print(len(set1 & set2 & set3))

你可能感兴趣的:(2019-07-30-作业)