2019-04-24 DAY8 作业

1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话
message1={'name':'张三',
         'age':20,
         'grade':70,
         'telephone':'112'
         }
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
message2={'name':'小明',
          'age':22,
          'grade':50,
          'telephone':'123',
          }
message3={'name':'小红',
          'age':27,
          'grade':99,
          'telephone':'562',
          }
message4={'name':'小王',
          'age':19,
          'grade':59,
          'telephone':'568',
          }
message5={'name':'小李',
          'age':17,
          'grade':77,
          'telephone':'114',
          }
message6={'name':'小超',
          'age':20,
          'grade':25,
          'telephone':'115',
          }
t=[message1,message2,message3,message4,message5,message6]
a.统计不及格学生的个数
count =0
for item in t:
    if item['grade']<60:
        count +=1
print(count)
b.打印不及格学生的名字和对应的成绩
for item in t:
    if item['grade']<60:
        print(item['name'],item['grade'])

c.统计未成年学生的个数
count=0
for item in t:
    if item['age']<18:
        count+=1
print(count)
d.打印手机尾号是8的学生的名字
for item in t:
    if item['telephone'][len(item['telephone'])-1]=='8':
        print(item['name'])

e.打印最高分和对应的学生的名字
i=0
for item in t:
    if item['grade']>i:
        i=item['grade']
        n=item['name']
print(i,n)

f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
t1=[]
t2=[]
t3=[]
for item in t:
    t1.append(item['grade'])
t1.sort(reverse=True)
t3=list(set(t1))
for x in t3:
    for item2 in t:
        if x==item2['grade']:
            t2.append(item2)
print(t2)
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
english=['小张','小明','小王','小马']
math=['小红','小马','小李']
physical=['小红','小王','小马','小李']
a. 求选课学生总共有多少人
print(len(set(english)|set(math)|set(physical)))
b. 求只选了第一个学科的人的数量和对应的名字
print(len(english))
for name in english:
    print(name,end=' ')
print()

c. 求只选了一门学科的学生的数量和对应的名字
print(len(set(english)&set(math)&set(physical)),end=' ')
print(''.join(set(english)&set(math)&set(physical)))
d. 求只选了两门学科的学生的数量和对应的名字

set1=set(english)
set2=set(math)
set3=set(physical)
set4=(set1&set2)|(set1&set3)|(set2&set3)
set5=set4-(set1&set2&set3)
print(' '.join(set5))
e. 求选了三门学生的学生的数量和对应的名字

print(' '.join(set(english)&set(math)&set(physical)))

你可能感兴趣的:(2019-04-24 DAY8 作业)