-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
- 统计不及格学生的个数
- 打印不及格学生的名字和对应的成绩
- 统计未成年学生的个数
- 打印手机尾号是8的学生的名字
- 打印最高分和对应的学生的名字
- 删除性别不明的所有学生
- 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
information = [ { 'name': '赵一', 'age': '12', 'score': 89, 'tel': '15848489598', 'gender': '男' }, { 'name': '钱二', 'age': '13', 'score': 59, 'tel': '15845757257', 'gender': '女' }, { 'name': '孙三', 'age': '14', 'score': 95, 'tel': '13599484418', 'gender': '女' }, { 'name': '李四', 'age': '15', 'score': 99, 'tel': '13348848249', 'gender': '男' }, { 'name': '周五', 'age': '16', 'score': 63, 'tel': '12345678911', 'gender': '不明' }, { 'name': '吴六', 'age': '17', 'score': 54, 'tel': '13316446897', 'gender': '男' } ] # 统计不及格学生的个数 count = 0 for stu in information: if stu['score'] < 60: count += 1 print(count) # 打印不及格学生的名字和对应的成绩 for stu in information: score = stu['score'] if score < 60: print(stu['name'], score) # 统计未成年学生的个数 count = 0 for stu in information: if int(stu['age']) < 18: count += 1 print(count) # 打印手机尾号是8的学生的名字 for stu in information: if int(stu['tel']) % 10 == 8: print(i['name']) # 打印最高分和对应的学生的名字 max_score = information[0]['score'] names = [information[0]['name'] for stu in information[1:]: score = stu['score'] if score == max_score: names.append(stu['name']) elif score > max_score: max_score = score names.clear() names.append(stu['name'] print(names, max_score) # 删除性别不明的所有学生 for stu in information[:]: if stu['gender'] == '不明': information.remove(stu) print(information) # 方法二 new_stu = [stu for stu in information if stu['gender'] != '不明'] print(new_stu) # 将列表按学生成绩从大到小排序
-
用三个元组表示三门学科的选课学生姓名(一个学生可以同时选多门课)
- 求选课学生总共有多少人
- 求只选了第一个学科的人的数量和对应的名字
- 求只选了一门学科的学生的数量和对应的名字
- 求只选了两门学科的学生的数量和对应的名字
- 求选了三门学生的学生的数量和对应的名字
java = ('张三', '李四', '小明', '小丽')
python = ('李四', '王二', 'Jacky', 'Pop')
C = ('Jacky', 'Pop', '张三')
# 求选课学生总共有多少人
s1 = set(python) | set(java) | set(C)
print(s1)
count = 0
for x in java:
count += 1
for y in python:
if y not in java:
count += 1
for z in C:
if z not in java and z not in python:
count += 1
print(count)
# 求只选了第一个学科的人的数量和对应的名字
s2 = set(java) - set(python) - set(C)
print(s2)
count = 0
for i in java:
if i not in python and i not in C:
count += 1
print(i, end=' ')
# 求只选了一门学科的学生的数量和对应的名字
# s3 = (set(java)-set(python)-set(C)) | (set(python)-set(java)-set(C)) | (set(C)-set(python)-set(java))
s3 = set(java) ^ set(python) ^ set(C) - set(java) & set(python) & set(C)
print(s3)
count = 0
for x in java:
if x not in python and x not in C:
count += 1
print(x)
for y in python:
if y not in java and y not in C:
count += 1
print(y)
for z in C:
if z not in java and z not in python:
count += 1
print(z)
print(count)
# 求只选了两门学科的学生的数量和对应的名字
s5 = set(java) & set(python) & set(C)
s4 = s1 - s3 - s5
print(len(s4))
print(s4)
count = 0
for x in java:
if (x in python and x not in C) or (x not in python and x in C):
count += 1
print(x)
for y in python:
if y not in java and y in C:
count += 1
print(y)
print(count)
# 求选了三门学生的学生的数量和对应的名字
s5 = set(java) & set(python) & set(C)
print(len(s5))
print(s5)
count = 0
for x in java:
if x in python and x in C:
count += 1
print(x)
print(count)