day8_作业

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

name1 = input('请输入姓名:')
age1 = int(input('请输入该学生年龄:'))
score1 = float(input('请输入该学生的成绩(单科):'))
tel1 = input('请输入该学生的电话:')
dict1 = {'name': name1, 'age': age1, 'score': score1, 'tel': tel1}
print(dict1)

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

dict1 = {'name': '廖1', 'age': 13, 'score': 24, 'tel': 12343545}
dict2 = {'name': '廖2', 'age': 23, 'score': 27, 'tel': 12323428}
dict3 = {'name': '廖3', 'age': 34, 'score': 57, 'tel': 32232344}
dict4 = {'name': '廖4', 'age': 34, 'score': 89, 'tel': 23434326}
dict5 = {'name': '廖5', 'age': 23, 'score': 68, 'tel': 23423424}
dict6 = {'name': '廖6', 'age': 56, 'score': 34, 'tel': 43534567}
list1 = [dict1, dict2, dict3, dict4, dict5, dict6]
# a
count = 0
for dict in list1:
    if dict['score'] < 60:
        count += 1
print('不及格的人数是:', count)
# b
print('不及格的学生有:', end='')
for dict in list1:
    if dict['score'] < 60:
        print(dict['name'], end='\t')
print()
# c
count = 0
for dict in list1:
    if dict['age'] < 18:
        count += 1
print('未成年的人数是:', count)
# d
count = 0
for dict in list1:
    tel = list(str(dict['tel']))
    if tel[-1] == '8':
        count += 1
print('电话号尾号是8的人数:', count)
# e
name1 = []
score1 = []
for dict in list1:
    name1.append(dict['name'])
    score1.append(dict['score'])
for i in range(len(score1)):
     if score1[i] == max(score1):
         print('获得最高分人及分数是:', score1[i], name1[i])
# f
j = len(list1)
while j > 0:
    i = 0
    while i < j-1:
        if list1[i]['score'] >= list1[i+1]['score']:
            list1[i], list1[i+1] = list1[i+1], list1[i]
        i += 1
    j -= 1
print(list1)

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

yuwen = ['a', 'b', 'c', 'd', 'f']
shuxue = ['a', 'c', 'e', 'g']
yingyu = ['b', 'c', 'h']

yuwen = set(yuwen)
shuxue = set(shuxue)
yingyu = set(yingyu)
# a
print(yuwen | shuxue |yingyu)

# b
a = yuwen - shuxue - yingyu
print('只选了第一个学科的人有:', a, '数量是:', len(a))

# c
a = (yuwen - shuxue - yingyu) | (shuxue - yuwen - yingyu) | (yingyu - yuwen - shuxue )
print('只选了一个学科的人有:', a, '数量是:', len(a))

# d
a = (yuwen & shuxue -yingyu) | (yuwen & yingyu -shuxue) | (yingyu & shuxue - yuwen)
print('只选了两个学科的人有:', a, '数量是:', len(a))

# e
a = yuwen & shuxue & yingyu
print('选了三个学科的人有:', a, '数量是:', len(a))

你可能感兴趣的:(day8_作业)