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 ,分别有: 小明