2019-07-30

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

students = {'费艾诺': {'年龄': 500, '数学': 99, '电话': '999', '性别': '男'}}

2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

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

a.统计不及格学生的个数
count = 0
for stu in students:
    if stu['数学'] < 60:
        count += 1
print(count)

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

for stu in students:
    if stu['数学'] < 60:
        print(stu['名字'], stu['数学'])

c.统计未成年学生的个数
count = 0
for stu in students:
    if stu['年龄'] < 18:
        count += 1
print(count)

 d.打印手机尾号是8的学生的名字
```python
for stu in students:
    if int(stu['电话']) % 10 == 8:
        print(stu['名字'])

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

name = students[0]['名字']
max_grade = students[0]['数学']
for stu in students:
    if stu['数学'] > max_grade:
        max_grade = stu['数学']
        name = stu['名字']
print(max_grade, name)

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


3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字

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

c1 = set(c1)
c2 = set(c2)
c3 = set(c3)
print(len(c1 | c2 | c3))

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

c1 = set(c1)
c2 = set(c2)
c3 = set(c3)
s1 = (c1 - c2) & (c1 - c3)
print(len(s1), s1)

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

c1 = set(c1)
c2 = set(c2)
c3 = set(c3)
s2 = ((c1 - c2) & (c1 - c3)) | ((c2 - c1) & (c2 - c3)) | ((c3 - c2) & (c1 - c1))
print(len(s2), s2)

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

c1 = set(c1)
c2 = set(c2)
c3 = set(c3)
s1 = c1 & c2 & c3 #选三门课的学生
s2 = (c1 | c2 | c3) - (c2 | c3)
s3 = (c1 | c2 | c3) - (c1 | c3)
s4 = (c1 | c2 | c3) - (c1 | c2)  #选一门课的学生
s5 = (c1 | c2 | c3) - s1 - s2 - s3 -s4
print(len(s5), s5)

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

c1 = set(c1)
c2 = set(c2)
c3 = set(c3)
s1 = c1 & c2 & c3
print(len(s1), s1)

你可能感兴趣的:(2019-07-30)