day08作业

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

student = {'姓名': '葫芦娃的爷爷', '年龄': '88', '成绩': 88, '电话': 8008208820}
print(student)

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

math = ['lily', 'rose', 'rachel', 'rick']
chinese = ['rick', 'tom', 'jerry', 'mon']
history = ['mon', 'rick', 'lord', 'aaa']
math2 = set(math)
chinese2 = set(chinese)
history2 = set(history)
student =math2|chinese2|history2
# print(student)
print("总共学生个数是",len(student))

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

print('===================')
set2 = (math2 - chinese2) - history2
count = 0
for stu in set2:
    count +=1
print("第一门学科的人数:", len(set2))
print("名字:",set2)

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

only = math2^chinese2^history2  #-math2&chinese2&history2
print("只选了一个学科的人数:", len(only))
print("名字是", only)

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

all = math2&chinese2&history2
print("都选了的人数:", len(all))
print("名字是", all)
# 所有学生 - 只选了一科的学生 - 选了三科的学生
both = set2 - only - all
print("都选了的人数:", len(both))
print("名字是", both)

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

student_six = [{'姓名': 'a', '年龄': '17', '成绩': 88, 'tel': 8008208820},{'姓名': 'b', '年龄': '18', '成绩': 90, 'tel': 8008208828},
{'姓名': 'c', '年龄': '18', '成绩': 58, 'tel': 8008208820},{'姓名': 'd', '年龄': '19', '成绩': 68, 'tel': 8008208826},
{'姓名': 'e', '年龄': '20', '成绩': 23, 'tel': 8008208820},{'姓名': 'f', '年龄': '16', '成绩': 81, 'tel': 8008208888}]

a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩

count = 0
for i in range(len(student_six)):
    if student_six[i].get('成绩') < 60:
        count+=1
        print(student_six[i].get('姓名'),student_six[i].get('成绩'))
print('不及格人数:',count)

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

count1 = 0
for i in range(len(student_six)):
    if student_six[i].get('年龄') < '18':
        count1 +=1
print("未成年人数:",count1)

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

for i in range(len(student_six)):
    if int(student_six[i].get('tel'))%10==8:
        print(student_six[i].get('姓名'),student_six[i].get('tel'))

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

max_grade = 0
for i in range(len(student_six)):
    if int(student_six[i].get('成绩')) > max_grade:
        max_grade = student_six[i].get('成绩')
        best_name = student_six[i].get('姓名')
print(max_grade,best_name)

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

print("=================fff====================")
for i in range(len(student_six)):
    for j in range(len(student_six)):
        if (int(student_six[i].get('成绩'))) > (student_six[j].get('成绩')):            student_six[i],student_six[j]=student_six[j],student_six[i]
print(student_six)

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