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)))