Python期末复习题:组合数据类型

Python期末复习题:组合数据类型

文章目录

  • 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

print

remove 6

append 9

append 1

sort

print

pop

reverse

print

输出:

[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}]

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)

运行的结果是:

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}]

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年5月29日
下一篇 2023年5月29日

相关推荐