1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)
student = {'name': '小明', 'age': 18, 'score': 99, 'tel': 12345678910, 'gender': '男'}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
nums = [
{'name': '小明', 'age': 18, 'score': 99, 'tel': 12345678910, 'gender': '男'},
{'name': '小花', 'age': 17, 'score': 89, 'tel': 27876527878, 'gender': '女'},
{'name': '小军', 'age': 21, 'score': 69, 'tel': 82727287725, 'gender': '男'},
{'name': '小芳', 'age': 20, 'score': 35, 'tel': 15773733833, 'gender': '女'},
{'name': '小红', 'age': 17, 'score': 75, 'tel': 89855725256, 'gender': '女'},
{'name': '狗蛋', 'age': 18, 'score': 88, 'tel': 17786875855, 'gender': '不明'}
]
# a.统计不及格学生的个数
n = 0
for student in nums:
if student['score'] < 60:
n += 1
print('不及格学生的个数:', n)
# b.打印不及格学生的名字和对应的成绩
for student in nums:
if student['score'] < 60:
print(student['name'], student['score'])
# c.统计未成年学生的个数
m = 0
for student in nums:
if student['age'] < 18:
m += 1
print('未成年学生个数:', m)
# d.打印手机尾号是8的学生的名字
for student in nums:
tel = student['tel']
# print(tel, type(tel))
if tel % 10 == 8:
print('手机尾号为8的学生:', student['name'])
# e.打印最高分和对应的学生的名字
max_student = 0
for student in nums:
if max_student < student['score']:
max_student = student['score']
print('最高分数:', max_student, '学生姓名:', student['name'])
# f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃) 成绩(grade)
for i in range(6):
for j in range(0, 6 - i - 1):
if nums[j]['score'] < nums[j + 1]['score']:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
print(nums)
# g.删除性别不明的所有学生
nums1 = []
for i in range(6):
if nums[i]['gender'] != '不明':
nums1.append(nums[i])
print('新:', nums1)
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
chinese = ['a', 'b', 'c', 'd']
math = ['b', 'c', 'r', 'f', 'p']
english = ['q', 'a', 'v', 't', 'f', 'i', 'c']
chinese = set(chinese)
math = set(math)
english = set(english)
# a. 求选课学生总共有多少人
print('选课总人数:', len(chinese | math | english))
# b. 求只选了第一个学科的人的数量和对应的名字
num = chinese - math - english
print('只选择了第一个学科的人的数量:', len(num), str(num))
# c. 求只选了一门学科的学生的数量和对应的名字
num1 = chinese - math - english
num2 = math - english - chinese
num3 = english - chinese - math
num4 = num1 | num2 | num3
print('选择一门学科学生数量:', len(num4), num4)
# d. 求只选了两门学科的学生的数量和对应的名字
num5 = chinese & math
num6 = chinese & english
num7 = math & english
num8 = num5 | num6 | num7
num9 = chinese & math & english
num10 = num8 - num9
print('选择两门学科的学生数量:', len(num10), num10)
# e. 求选了三门学生的学生的数量和对应的名字
num9 = chinese & math & english
print('选择三门学科的学生:', len(num9), num9)