赞
踩
1.声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明)。
dict1 = {'name':'a','age':18,'score':99,'nums':15264855565,'gender':'男'}
2.声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
- list1 = [
- {'name': '大一', 'age': 18, 'score': 99, 'tel': 15166555268, 'gender': '男'},
- {'name': '小二', 'age': 16, 'score': 80, 'tel': 16588922166, 'gender': '不明'},
- {'name': '张三', 'age': 22, 'score': 36, 'tel': 12454424266, 'gender': '女'},
- {'name': '李四', 'age': 23, 'score': 26, 'tel': 14255222458, 'gender': '不明'},
- {'name': '王五', 'age': 19, 'score': 95, 'tel': 16245542528, 'gender': '女'},
- {'name': '赵六', 'age': 15, 'score': 88, 'tel': 16154254258, 'gender': '男'}
- ]
(1) 统计不及格学生的个数
(2) 打印不及格学生的名字和对应的成绩
- t1 = 0
- for list2 in list1:
- # print(list2)
- # print(list2['score'])
- # print(list2['nums'])
- # print(list2['score'])
- if list2['score'] < 60: #统计不及格学生的信息
- t1 += 1
- print('不及格的学生名字和成绩',list2['name'],":",list2['score'])
- print('不及格的学生个数:',t1)
(3) 统计未成年学生的个数
- t3 = 0
- for list2 in list1:
- if list2['age'] < 18:
- t3 += 1
- print('未成年学生的人数',t3)
- # print(f'未成年人数:{t3}')
(4) 打印手机尾号是8的学生的名字
- for list2 in list1:
- if list2['tel']%10 == 8:
- # if list2['tel'][-1] == '8':#电话号码是字符串'13212345678'
- print('手机尾号是8的学生的名字:',list2['name'])
- # print(f"手机尾号是8得学生得名字:{list2['name']}")
(5) 打印最高分和对应的学生的名字
- max1 = 0
- for list2 in list1:
- if list2['score'] > max1:
- max1 = list2['score']
- name = list2['name']
- print(name)
-
- #法二
- num = {'name':''}
- max_score = list1[0]['score']
- for x in list1[1:]:
- if x['score'] > max_score:
- max_score = x['score']
- num['name'] = x['name']
- print('最高分的学生:',max_score,num['name'])
(6) 删除性别不明的所有学生
- #######1.6 法一
- for i in list1[:]:
- if i['gender'] == '不明':
- list1.remove(i)
- print(i)
- print(list1)
-
- #####1.6 法二
- i = 0
- while i <len(list1):
- if list1[i]['gender'] == '不明':
- list1.remove(list1[i])
- i -= 1
- i += 1
- print(list1)
-
- ######1.6 法三
-
- res = [x for x in list1 if x['gender'] != '不明']
- print(res)
-
- ######1.6 法四
- ## (5,-1,-1)
-
- for x in range(len(list1)-1,-1,-1): #543210
- if list1[x]['gender'] == '不明':
- list1.remove(list1[x])
- print(list1)
(7) 将列表按学生成绩从大到小排序
- for i in range(len(list1)):
- for j in range(len(list1)-1-i):
- if list1[j]['score'] <list1[j+1]['score']:
- list1[j],list1[j+1]= list1[j+1],list1[j]
- print(list1)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。