Python期末复习题:组合数据类型
一、成绩分析
有10 名同学的python 课程成绩分别为:94, 89, 96, 88, 92, 86, 69, 95, 78,85。
要求利用列表分析成绩,输出平均值、最高的3个成绩和最低的3个成绩、成绩中位数(是按顺序排列的一组数据中居于中间位置的数,如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数)。
针对上述成绩的输出结果应该为:
平均成绩为:87.2
最高3个成绩为:[96, 95, 94]
最低3个成绩为: 69 78 85
中位数成绩为:88.5
score = [94, 89, 96, 88, 92, 86, 69, 95, 78, 85]
avg = sum(score) / len(score)
score.sort()
max_3 = score[-3:]
min_3 = score[:3]
n = len(score)
if n % 2 == 0:
median = (score[n // 2 - 1] + score[n // 2]) / 2
else:
median = score[n // 2]
print(f'平均成绩为:{avg}')
print(f'最高3个成绩为:{max_3}')
print('最低3个成绩为:', *min_3)
print(f'中位数成绩为:{median}')
运行的结果是:
平均成绩为:87.2
最高3个成绩为:[94, 95, 96]
最低3个成绩为: 69 78 85
中位数成绩为:88.5
二、列表的属性与方法
初始化一个空列表,输入一个正整数 n。
接下来,你将被要求输入 n 个指令,每得到一个指令后,根据指令的字符串进行对应的功能操作。
指令形式及对应功能如下:
insert i e: # 在第 i 个位置插入整数 e
print: # 输出列表
remove e: # 删除第一次出现的整数 e
append e: # 在列表的末尾插入整数
e.sort: # 按默认规则排序
pop: # 弹出列表最后一一个元素
reverse: # 列表元素逆序
示例 如下:
输入:
12
insert 0 5
insert 1 10
insert 0 6
remove 6
append 9
append 1
sort
pop
reverse
输出:
[6, 5, 10]
[1, 5, 9, 10]
[9, 5, 1]
n = int(input())
ls = []
for i in range(n):
a = input().split()
if a[0] == 'insert':
ls.insert(int(a[1]), int(a[2]))
elif a[0] == 'print':
print(ls)
elif a[0] == 'remove':
ls.remove(int(a[1]))
elif a[0] == 'append':
ls.append(int(a[1]))
elif a[0] == 'sort':
ls.sort()
elif a[0] == 'pop':
ls.pop()
elif a[0] == 'reverse':
ls.reverse()
运行的结果是:
12
insert 0 5
insert 1 10
insert 0 6
print
[6, 5, 10]
remove 6
append 9
append 1
sort
print
[1, 5, 9, 10]
pop
reverse
print
[9, 5, 1]
三、模拟通讯录的数据添加功能
模拟通讯录的数据添加功能。
def menu(): print('''\n欢迎使用PYTHON学生通讯录 1:添加学生 2:删除学生 3:修改学生信息 4:搜索学生 5:显示全部学生信息 6:退出并保存''') dic={'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
要求编写程序
首先输出字典原始数据,再调用menu函数输出用户选择界面,接下来读用户输入:
(1) 输入‘1’ 进行添加学生,输入姓名,如果该姓名已存在,则输出“Fail”的提示信息,如果不存在,继续输入电话和所在学院。添加完毕后输出“Success”提示信息。无论是否添加成功,结束后需要输出操作后的字典数据。
(2) 如果输入其他选项,无需再读姓名,直接输出“ERROR”。
示例
输入:
1
杨彪
11002345678
材料
输出:
{‘张自强’: [‘12652141777’, ‘材料’], ‘庚同硕’: [‘14388240417’, ‘自动化’], ‘王岩’: [‘11277291473’, ‘文法’]}
欢迎使用PYTHON学生通讯录
1:添加学生
2:删除学生
3:修改学生信息
4:搜索学生
5:显示全部学生信息
6:退出并保存
#输入数据
{‘张自强’: [‘12652141777’, ‘材料’], ‘庚同硕’: [‘14388240417’, ‘自动化’], ‘王岩’: [‘11277291473’, ‘文法’], ‘杨彪’: [‘11002345678’, ‘材料’]}
def menu():
print('''\n欢迎使用PYTHON学生通讯录
1:添加学生
2:删除学生
3:修改学生信息
4:搜索学生
5:显示全部学生信息
6:退出并保存''')
dic={'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
def add():
name = input().split()
try:
phone = input().split()
college = input().split()
message = [phone, college]
except:
print("Fail")
else:
dic[name] = message
print("Success")
print(dic)
menu()
choice = input()
if(choice == '1'):
add()
print(dic)
else:
print("ERROR")
运行的结果是:
{'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']}
欢迎使用PYTHON学生通讯录
1:添加学生
2:删除学生
3:修改学生信息
4:搜索学生
5:显示全部学生信息
6:退出并保存
1
杨彪
11002345678
材料
Success
{'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法'], '杨彪': ['11002345678', '材料']}
四、字典列表的排序
字典列表的排序。第一行输入一个正整数 N,随后的 N 行各输入一个人的姓名和年龄,中间用空格分隔(形如 “Tom 18” ),将字符串转为形如 {“name”:“Tom”,“age”:18} 的字典,按顺序加入到列表中,得到一个元素为字典的列表,分别根据年龄和姓名对其排序输出。
示例
输入:
4
Tom 18
Jerry 47
Cat 20
Doge 33
输出:
[{‘name’: ‘Tom’, ‘age’: 18}, {‘name’: ‘Cat’, ‘age’: 20}, {‘name’: ‘Doge’, ‘age’: 33}, {‘name’: ‘Jerry’, ‘age’: 47}]
[{‘name’: ‘Cat’, ‘age’: 20}, {‘name’: ‘Doge’, ‘age’: 33}, {‘name’: ‘Jerry’, ‘age’: 47}, {‘name’: ‘Tom’, ‘age’: 18}]文章来源:https://www.toymoban.com/news/detail-449832.html
n = int(input())
ls = []
for i in range(n):
a, b = input().split()
dicts = {"name": a, "age": int(b)}
ls.append(dicts)
list_age = sorted(ls, key=lambda x: x['age'])
list_name = sorted(ls, key=lambda x: x['name'])
print(list_age)
print(list_name)
运行的结果是:文章来源地址https://www.toymoban.com/news/detail-449832.html
4
Tom 18
Jerry 47
Cat 20
Doge 33
[{'name': 'Tom', 'age': 18}, {'name': 'Cat', 'age': 20}, {'name': 'Doge', 'age': 33}, {'name': 'Jerry', 'age': 47}]
[{'name': 'Cat', 'age': 20}, {'name': 'Doge', 'age': 33}, {'name': 'Jerry', 'age': 47}, {'name': 'Tom', 'age': 18}]
到了这里,关于Python期末复习题:组合数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!