Day08.作业

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

students = dict.fromkeys(['姓名', '年龄', '成绩', '电话'], None)
for item in students:
    students[item] = input('请输入%s' % item)
print(students)

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

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

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

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

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

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

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

students_list = []
for x in range(6):
    students = dict.fromkeys(['姓名', '年龄', '成绩', '电话'], None)
    for item in students:
        students[item] = input('请输入%s' % item)
    students['姓名'] = students.copy()
    students_list.append(students['姓名'])
# a.统计不及格学生的个数, b.打印不及格学生的名字和对应的成绩
fail = 0
for student in range(len(students_list)):
    if int(students_list[student]['成绩']) < 60:
        print(students_list[student]['姓名'], students_list[student]['成绩'])
        fail += 1
print('不及格的学生人数为%s' % fail)
# c.统计未成年学生的个数
nonage = 0
for student in range(len(students_list)):
    if int(students_list[student]['年龄']) < 18:
        print('%s未成年' % students_list[student]['姓名'])
        nonage += 1
print('未成年的学生人数为%s' % nonage)
# d.打印手机尾号是8的学生的名字
for student in range(len(students_list)):
    if students_list[student]['电话'][10] == '8':
        print('%s的手机号尾号为8' % students_list[student]['姓名'])
# e.打印最高分和对应的学生的名字
max_score = 0
student = 0
name = ''
for student in range(len(students_list)):
    if int(students_list[student]['成绩']) > max_score:
        max_score = int(students_list[student]['成绩'])
        name = students_list[student]['姓名']
print('%s的成绩最高为%s' % (name, max_score))
# f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
scores = []
students_list2 = []
for student in range(len(students_list)):
    scores.append(int(students_list[student]['成绩']))
for student in range(len(students_list)):
    if int(students_list[student]['成绩']) == max(scores):
        scores.remove(max(scores))
        students_list2.append(students_list[student])
print(students_list2)

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