2019-04-24_day_8_代码作业

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}
'''
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。