当前位置: 首页 > news >正文

浙江大学python程序设计(陈春晖、翁恺、季江民)习题答案-第五章

一、判断题

1.集合的元素可以是任意数据类型。 错误
2.len(set([0,4,5,6,0,7,8])的结果是7。错误
3.a = {},type(a)结果是<class 'set'>错误
4.列表可以作为字典的键。 错误
5.下面程序最后一行的输出是:"岳瑜":13611987725错误

dic={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
for i in len(dic):print(dic[i]) 

6.下面的程序输出是None正确

dic={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
print(dic.get("张军",None)) 

7.下面的程序输出是None错误

dic={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
print(dic["张军"]) 

8.下面的程序输出是张秀华正确

dic={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
reversedic={v:k for k,v in dic.items()}
print(reversedic[13063767486]) 

9.下面的程序输出是15929494512正确

dic1={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
dic2={"王玉兰":15619397270,"王强":15929494512,"王桂荣":13794876998,"邓玉英":18890393268,"何小红":13292597821}
dic3 = dic1.update(dic2)
print(dic3["王强"]) 

10.下面的程序输出是15146046882正确

dic1={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
dic2={"王玉兰":15619397270,"王强":15929494512,"王桂荣":13794876998,"邓玉英":18890393268,"何小红":13292597821}
dic3={** dic1,** dic2}
print(dic3["胡桂珍"])

11.下面的程序输出是True正确

dic1={"赵洁":15264771766,"张秀华":13063767486,"胡桂珍":15146046882,"龚丽丽":13606379542,"岳瑜":13611987725}
dic2={"王玉兰":15619397270,"王强":15929494512,"王桂荣":13794876998,"邓玉英":18890393268,"何小红":13292597821}
dic3={ ** dic1, ** dic2} 
dic1.update(dic2) 
print(dic1== dic3) 

二、选择题

1、以下( C)会得到 {1,2,3}
A、list(“123”)
B、 tuple(“123”)
C、set(“123”)
D、 以上选项都不是

2、以下( A )可以创建一个空的集合 。
A、 set()
B、{ }
C、[ ]
D、( )

3、对于两个集合s1和s2,s1<s2的意思是( C )。
A、s1的大小小于s2的大小
B、s1的元素比s2的小
C、s1是s2的真子集
D、s2是s1的真子集

4、对于集合s,以下( B )是不存在的 。
A、len(s)
B、s.append(1)
C、max(s)
D、s - {1}

5、对于操作a[2]=3,a不可能是( C )。
A、集合
B、列表
C、元组
D、字典

分析:
对于操作 a[2] = 3,这意味着尝试给变量 a 中索引或键为 2 的位置赋值 3

我们分析一下各个选项的数据类型:

A、集合 (Set):集合是无序的,不支持通过索引或键来访问或修改元素。尝试 a[2] = 3 会引发 TypeError
B、列表 (List):列表是有序的,支持通过索引来访问和修改元素。如果列表 a 的长度大于等于 3,那么 a[2] = 3
是一个有效的操作。 C、元组
(Tuple)
:元组是有序的,支持通过索引来访问元素,但是元组是不可变的(immutable),不支持修改元素。尝试 a[2] = 3 会引发 TypeError。 D、字典
(Dictionary)
:字典是键值对的集合,支持通过键来访问和修改对应的值。a[2] = 3 会将键 2 对应的值设置为
3。这是一个有效的操作(如果键 2 不存在,则会添加该键值对;如果存在,则会更新值)。

操作 a[2] = 3 是一个赋值操作。在给定的选项中,集合和元组都不支持这种通过 [2]
进行赋值的操作。集合是因为它不支持索引和赋值,元组是因为它不可变,不支持元素修改。

然而,题目问的是 a 不可能是 哪种类型,使得操作 a[2] = 3
成为一个不可能(即会出错)的操作。换句话说,哪种类型不支持 a[2] = 3 这个操作。

根据分析,集合和元组都不支持 a[2] = 3 这个操作。但是,在 Python 中,a[2]
这种语法通常用于访问序列类型(如列表、元组)的索引,或者字典的键。集合不支持 a[2] 这种访问语法。元组支持 a[2]
访问语法,但不允许赋值。

考虑到选项和典型的 Python 考察点,元组的不可变性是其重要特性。虽然集合也不支持此操作,但 a[2]
的写法更倾向于索引或键访问。元组支持 a[2] 访问,但 a[2] = 3 会因其不可变性而失败。

因此,最符合题意的答案是元组,因为它是支持 a[2] 访问语法但不支持 a[2] = 3 赋值操作的类型。

答案是 C。

三、填空题

  1. 在一行中输入若干个0 - 9的数字,数字之间用空格分隔,以下代码会输出0~9这10个数字在输入中出现的次数:
a = map(int, input().split())
m = ____
for x in a:m[x]=________
for k in m.keys():print(k,_____)

第一种解法:
第一空:{ }
第二空:m.get(x,0)+1
第三空:m.get(k,0)

第二种解法:
第一空:[0]*10
第二空:m[x]+1
第三空:m[k]

  1. 下面程序的输出结果是 30
dic1 = {"姓名":"xiaoming","年龄":27}
dic2 = {"性别":"male", "年龄":30}
dic3 = {k:v for d in [dic1,dic2] for k,v in d.items()}
print(dic3["年龄"])

相关文章:

  • 大模型(1)——基本概念
  • 达梦数据库对json字段进行操作
  • C++开源库argh使用教程
  • Qt Widgets模块功能详细说明,基本控件:QCheckBox(三)
  • JAVA Web 期末速成
  • DeepSeek 赋能机器人研发:从技术革新到场景落地
  • 【C/C++】C语言内存操作与字符串处理汇总
  • 简单实现网页加载进度条
  • Bootstrap 5 容器与网格系统详解
  • Java中的流详解
  • 2025ICPC邀请赛南昌游记
  • 【C语言基础语法入门】通过简单实例快速掌握C语言核心概念
  • 安防综合管理系统EasyCVR视频融合平台安防知识:门禁系统与视频监控系统如何联动?
  • 【Qwen开源】WorldPM: 扩展人类偏好建模
  • EMC基础知识-EFT(上)
  • 基于AI的Web数据管道,使用n8n、Scrapeless和Claude
  • mybatis-plus实操
  • 【Nextcloud】使用 LNMP 架构搭建私有云存储:Nextcloud 实战指南
  • TDesign AI Chat - Vue3.x 可用!腾讯出品的 AIGC 交互对话组件,免费开源、包含设计资源
  • MyBatis入门指南
  • 媒体:多家国有大行存款利率即将迎来新一轮下调
  • 完善劳动关系协商协调机制,《共同保障劳动者合法权益工作指引》发布
  • 不赚“快钱”的佳沛:蒋时杰解密新西兰国果如何在中国“慢养”出43亿生意
  • 香港今年新股集资额已超600亿港元,暂居全球首位
  • “南昌航空一号”成功发射,赣江鄱阳湖有了专属卫星守护
  • 国宝文物子弹库帛书二、三卷从美启程,18日凌晨抵京