python pta实验五组合数据类型

目录

一、判断题

二、选择题

三、编程题

7-1 统计工龄

7-2 分析活动投票情况

7-3 计算每个学生的平均成绩


一、判断题

  1. Python字典和集合都是无序的容器。        T
  2. 运算符“-”可以用于集合的差集运算        T
  3. Python中的列表是不可变的        F
  4. Python中的元组是不可变的。        T
  5. 一个列表可以是另一个列表的元素        T
  6. 字典的元素可以通过键来访问,也可以通过位置来访问。        F
  7. Python字典中的“键”不允许重复。        T
  8. 列表的元素可以是任何类型的对象。        T
  9. 字典直接打印出来的顺序与创建之初的顺序可能不同。        T
  10. 所有的序列都是有顺序的。        T

二、选择题

  1. ls = [3.5, "Python", [10, "PYTHON"], 3.6],哪个选项是ls[2][-1][1]的运行结果?                A.Y        B.T        C.P        D.N
  2. 以下选项不属于组合数据类型的是: A.浮点数类型B.序列类型C.字典类型D.集合类型
  3. 如果list1 = [11, 12, 13, 14, 15, 4, 3, 2, 1],那么以下那个是list1[:-1]计算的结果?A.[0,11, 12, 13, 14, 15, 4, 3, 2,1]        B.[11, 12, 13, 14, 15, 4, 3, 2]        C.[11, 12, 13, 14, 15, 4, 3, 2,1]        D.[0,11, 12, 13, 14, 15, 4, 3, 2,1,0]
  4. 要把5加到列表lst的末尾,可以使用_lst.append(5) 
  5. 下列哪些类型的数据可以作为字典中元素的“键”( )。        A.列表        B.整数        C.集合        D.字典         NumbersTuplesStrings
  6. 以下对列表a = ['a', 'b', 'c', 'd', 'e']操作不正确的是:        A.a[len(a)-1]        B.a[-1]        C.a[-5]        D.a[5]
  7. 下述代码所实现的功能是:( )scores = ['小明',99.5, 100, 97.5, 100, 100, 99.5]                                                   sum = sum(scores[1:])                                                   print(sum)                A.输出列表中编号为1的元素        B.输出列表中第一位数字和最后一位数字的和        C.截取列表中元素 [99.5, 100, 97.5, 100, 100, 99.5]并进行累加之后得到总和,最后输出总和        D.从列表中随便输出一位元素
  8. 以下不能创建一个字典的语句是:        A.dict1 = {}        B.dict2 = { 3 : 5 }        C.dict3 = {[1,2,3]: “uestc”}        D.dict4 = {(1,2,3): “uestc”}
  9. 关于组合数据类型的描述,正确的选项是:        A.Python中最常用的映射类型的典型代表是字典类型        B.列表类型里的元素要求是同一种数据类型        C.元组采用大括号{ }方式表示        D.序列类型的元素可以用reverse()方法交换相邻元素的位置
  10. Python中,以下关于集合的描述错误的是:        A.无法删除集合中指定位置的元素,只能删除特定值的元素。        B.Python集合中的元素不允许重复。        C.Python集合是无序的。        D.Python集合可以包含相同的元素。

三、编程题

7-1 统计工龄

给定公司多名员工的工龄,按输入工龄顺序输出每个工龄段有多少员工。

  • 输入格式:给出多个整数,即每个员工的工龄,范围在[0, 50]。
  • 输出格式:按输入工龄顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。
  • 输入输出样例:
10 2 0 5 7 2 5 2
10:1
2:3
0:1
5:2
7:1
items = dict()
data = list(map(int, input().split()))

for i in data:
    if not items.__contains__(i):
        items[i] = 1
    else:
        items[i]+=1

for k,v in items.items():
    print(f"{k}:{v}")

7-2 分析活动投票情况

利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员

输入格式:在一行中输入得票的队员的序列号,用逗号隔开。

输出格式:一行中输出第二小队没有得票的队员序号。

输入输出样例:

1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9 
6 8
s=set(map(int,input().split(",")))
flag=1
for i in range(6,11):
    if i not in s:
        if flag==1:
            print(i,end="")
            flag=0
        else:
            print(" %d"%i,end="")

7-3 计算每个学生的平均成绩

输入所有学生的姓名和成绩,以#结束。输出每个学生的平均成绩表。

输入格式:每一行输入一个学生的姓名和成绩,以空格分隔。输入完成后以#结束

输出格式:每行显示一个学生的姓名和平均成绩,姓名占8位宽度,平均成绩保留两位小数点。姓名和平均成绩之间用空格隔开。

输入输出样例1:

Maria 20
David 10
Bob 15
David 20
#
姓 名     平均成绩
Maria    20.00
David    15.00
Bob      15.00

输入输出样例2: 

韩思	80
杨世忆	70
徐晓畅	100
黄嘉	95
刘天宇	60
叶鸿	80
韩思	85
杨世忆	65
徐晓畅	100
黄嘉	90
刘天宇	80
刘天宇	90
徐晓畅	100
徐晓畅	100
徐晓畅	100
#
姓 名     平均成绩
韩思       82.50
杨世忆      67.50
徐晓畅      100.00
黄嘉       92.50
刘天宇      76.67
叶鸿       80.00

 

# 用于记录数据
items = dict()

# 接收数组存入列表
while 1:
    string = input()
    if string == '#':
        break
    else:
        name = string.split()[0]
        score = float(string.split()[1])
        if items.__contains__(name):
            items[name][0] += score
            items[name][1] += 1
        else:
            items[name] = [score, 1]

# 计算所有人成绩的平均数
print("姓 名     平均成绩")
for k in items.keys():
    items[k][0] /= items[k][1]
    print(f"{k}".ljust(8), f"{float(items[k][0]):.2f}".rjust(4))

 

你可能感兴趣的:(python,开发语言)