day8_homework

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

student1 = {'name': '小明', 'age': 18, 'score': 59, 'tel': '13500002235'}

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

student2 = {'name': '张三', 'age': 17, 'score': 69, 'tel': '13500001312'}
student3 = {'name': '李四', 'age': 19, 'score': 62, 'tel': '13500002248'}
student4 = {'name': '王五', 'age': 16, 'score': 77, 'tel': '13500002236'}
student5 = {'name': '二狗', 'age': 18, 'score': 88, 'tel': '13500002437'}
student6 = {'name': '毛毛', 'age': 17, 'score': 39, 'tel': '13500002335'}
students = [student1, student2, student3, student4, student5, student6]

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

count = 0
for item in students:
    if item['score'] < 60:
        count += 1
print('不及格学生个数:', count)

不及格学生个数: 2

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

for item in students:
    if item['score'] < 60:
        print(item['name'], item['score'])

小明 59
毛毛 39

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

count = 0
for item in students:
    if item['age'] < 18:
        count += 1
print('未成年学生个数:', count)

未成年学生个数: 3

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

for item in students:
    if item['tel'][:-2:-1] == '8':
        print(item['name'])

李四

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

max_score = students[1]
for item in students:
    if max_score['score'] < item['score']:
        max_score = item
print('最高分为:', max_score['score'], ',学生是:', max_score['name'], sep='')

最高分为:88,学生是:二狗

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

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

[{'name': '二狗', 'age': 18, 'score': 88, 'tel': '13500002437'},
{'name': '王五', 'age': 16, 'score': 77, 'tel': '13500002236'},
{'name': '张三', 'age': 17, 'score': 69, 'tel': '13500001312'},
{'name': '李四', 'age': 19, 'score': 62, 'tel': '13500002248'},
{'name': '小明', 'age': 18, 'score': 59, 'tel': '13500002235'},
{'name': '毛毛', 'age': 17, 'score': 39, 'tel': '13500002335'}]

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

class1 = ['张三', '王五', '小明', '阿水', '如风']
class2 = ['李四', '王五', '毛毛', '小明', '阿水']
class3 = ['张三', '二狗', '毛毛', '小明']

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

count = len(set(class1+class2+class3))
print('选课学生总数', count)

选课学生总数 8

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

stu_s = set(class1) - set(class2) - set(class3)
count = len(stu_s)
print('只选了第一个学科的人个数:', count, ',分别有:', *stu_s, sep=' ')

只选了第一个学科的人个数: 1 ,分别有: 如风

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

stu_s = set(class1) ^ set(class2) ^ set(class3)
count = len(stu_s)
print('只选了一门学科的人个数:', count, ',分别有:', *stu_s, sep=' ')

只选了一门学科的人个数: 4 ,分别有: 李四 如风 小明 二狗

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

stu_s = []
stu = class1 + class2 + class3
for item in stu:
    if stu.count(item) == 2:
        stu_s.append(item)
stu_s = set(stu_s)
count = len(stu_s)
print('只选了两门学科的人个数:', count, ',分别有:', *stu_s, sep=' ')
当然所有学生除去只选了一门和选了三门的学生,也是只选了两门的个数

只选了两门学科的人个数: 4 ,分别有: 王五 毛毛 阿水 张三

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

stu_s = []
stu = class1 + class2 + class3
for item in stu:
    if stu.count(item) == 3:
        stu_s.append(item)
stu_s = set(stu_s)
count = len(stu_s)
print('选了三门学科的人个数:', count, ',分别有:', *stu_s, sep=' ')

选了三门学科的人个数: 1 ,分别有: 小明

你可能感兴趣的:(day8_homework)