1
声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话
message = {'name' : 'alex', 'age' : 18, "score" : 87, 'tel' : '130123456789'}
print(message)
结果
{'name': 'alex', 'age': 18, 'score': 87, 'tel': '130123456789'}
2
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
a.统计不及格学生的个数
b.打印不及格学生的名字和对应的成绩
c.统计未成年学生的个数
d.打印手机尾号是8的学生的名字
e.打印最高分和对应的学生的名字
f.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
stu_message1 = {'name' : 'alex_1', 'age' : 18, "score" : 28, 'tel' : '130123456888'}
stu_message2 = {'name' : 'alex_2', 'age' : 19, "score" : 88, 'tel' : '131123456789'}
stu_message3 = {'name' : 'alex_3', 'age' : 15, "score" : 89, 'tel' : '133123456789'}
stu_message4 = {'name' : 'alex_4', 'age' : 21, "score" : 37, 'tel' : '136123456789'}
stu_message5 = {'name' : 'alex_5', 'age' : 12, "score" : 91, 'tel' : '137123456668'}
stu_message6 = {'name' : 'alex_6', 'age' : 23, "score" : 92, 'tel' : '138123456789'}
list_s = [stu_message1,stu_message2,stu_message3,stu_message4,stu_message5,stu_message6]
count = 0
for i in list_s:
if i["score"] < 60:
print("b:","name:",i["name"],"score:",i["score"])
count += 1
print("a.不及格人数:",count)
count = 0
for i in list_s:
if i["age"] < 18:
count += 1
print("c.未成年人数:",count)
for i in list_s:
if i["tel"][-1] == '8':
print("d.手机尾号是8的学生的名字:",i["name"])
score = 0
name = None
for i in list_s:
if i["score"] > score:
score = i["score"]
name = i["name"]
print("e.最高分",score,"姓名:",name)
list_new = []
score = 0
stu_message = None
for j in range(6):
score = 0
for i in list_s:
if i["score"] > score:
score = i["score"]
stu_message = i
#print(score)
list_new.append(stu_message)
list_s.remove(stu_message)
# break
print(list_new)
#print(list_s)
结果
'''
b: name: alex_1 score: 28
b: name: alex_4 score: 37
a.不及格人数: 2
c.未成年人数: 2
d.手机尾号是8的学生的名字: alex_1
d.手机尾号是8的学生的名字: alex_5
e.最高分 92 姓名: alex_6
[{'name': 'alex_6', 'age': 23, 'score': 92, 'tel': '138123456789'}, {'name': 'alex_5', 'age': 12, 'score': 91, 'tel': '137123456668'}, {'name': 'alex_3', 'age': 15, 'score': 89, 'tel': '133123456789'}, {'name': 'alex_2', 'age': 19, 'score': 88, 'tel': '131123456789'}, {'name': 'alex_4', 'age': 21, 'score': 37, 'tel': '136123456789'}, {'name': 'alex_1', 'age': 18, 'score': 28, 'tel': '130123456888'}]
'''
3
3.用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
a. 求选课学生总共有多少人
b. 求只选了第一个学科的人的数量和对应的名字
c. 求只选了一门学科的学生的数量和对应的名字
d. 求只选了两门学科的学生的数量和对应的名字
e. 求选了三门学生的学生的数量和对应的名字
math = ["stu_1","stu_2","stu_3","stu_4"]
python = ["stu_1","stu_2","stu_6","stu_8","stu_9"]
java = ["stu_1","stu_2","stu_3","stu_6","stu_10","stu_11","stu_22"]
account = math + python +java
print('a.选课学生总共有:',len(set(account)),"人")
new_dict = dict.fromkeys(math, len(math))
print('b.只选了第一个学科的人的数量和对应的名字',new_dict)
account_1 = list((set(math) ^ set(python) ^ set(java)) ^ (set(math) & set(python) & set(java)))
new_dict_1 = dict.fromkeys(account_1, len(account_1))
print('c.只选了一门学科的学生的数量和对应的名字',new_dict_1)
account_2 = list(((set(math) & set(python)) | (set(math) & set(java)) | (set(java) & set(python))) ^ (set(math) & set(python) & set(java)))
new_dict_2 = dict.fromkeys(account_2, len(account_2))
print('d.只选了两门学科的学生的数量和对应的名字',new_dict_2)
account_3 = list((set(math) & set(python) & set(java)))
new_dict_3 = dict.fromkeys(account_3, len(account_3))
print('e. 选了三门学生的学生的数量和对应的名字',new_dict_3)
结果
'''
a.选课学生总共有: 10 人
b.只选了第一个学科的人的数量和对应的名字 {'stu_1': 4, 'stu_2': 4, 'stu_3': 4, 'stu_4': 4}
c.只选了一门学科的学生的数量和对应的名字 {'stu_9': 6, 'stu_11': 6, 'stu_22': 6, 'stu_10': 6, 'stu_4': 6, 'stu_8': 6}
d.只选了两门学科的学生的数量和对应的名字 {'stu_6': 2, 'stu_3': 2}
e. 选了三门学生的学生的数量和对应的名字 {'stu_1': 2, 'stu_2': 2}
'''