目录

  • 前言
    • ●  Python解释器安装
    • ●  PyCharm开发环境
  • Python程序设计实验
    • ●  实验1 IDLE与代码编写规范
    • ●  实验2 输入输出与数据类型
    • ●  实验3 字符串处理
    • ●  实验4 数据运算
    • ●  实验5 列表与元组应用
    • ●  实验6 字典与集合应用
    • ●  实验7 if语句与match语句
    • ●  实验8 使用循环语句
    • ●  实验9 异常处理
    • ●  实验10 函数应用
    • ●  实验11 类的应用
    • ●  实验12 模块应用
    • ●  实验13  应用re模块
    • ●  实验14 文件处理
    • ●  实验15 用户界面设计
    • ●  实验18 SQLite数据库应用
    • ●  理论考试模拟试题A
    • ●  理论考试模拟试题B
    • ●  理论考试模拟试题C
    • ●  理论考试模拟试题D
  • 学习参考
    • ●  01 Python及其IDLE环境
    • ●  02 Python代码规范
    • ●  03 常量和变量
    • ●  04 输入输出
    • ●  05 运算符
    • ●  06 数值类型
    • ●  07 字符串
    • ●  08 列表
    • ●  09 元组
    • ●  10 字典
    • ●  11 集合
    • ●  12 条件语句
    • ●  13 循环语句
    • ●  14 异常处理
    • ●  15 自定义函数
    • ●  16 内置函数
    • ●  17 模块导入与定义
    • ●  18 math模块
    • ●  19 os模块
    • ●  20 time模块
    • ●  21 random模块
    • ●  22 文本文件
    • ●  23 二进制文件
    • ●  24 类的创建和使用
    • ●  25 类的继承与多态
 实验6 字典与集合应用

教学视频-->>

任务1 创建字典

要求:

1、程序运行时依次输入张三、李四、王五、赵六四名学生的成绩 ([0, 100] 上的整数),筛选出成绩超过四人平均分的创建字典。

2、必须利用推导式创建字典。

3、程序保存到:s6t1.py

4、程序执行效果:

输入成绩:76,85,90,96

{"王五":90,"赵六":96}

【参考与提示】

求解思路:

1、使用 input 函数得到整数字符串s。

2、利用 eval 函数将 s 转化为元组a。

3、创建元组 b: 元素为 (成绩,姓名)。

4、计算平均成绩 v。

5、结合 b、v,利用推导式创建字典,筛选出符合条件的学生成绩。

推导式创建字典的基本格式:

d={关键字:键值 for k in b if 条件}

 

任务2 字典的基本操作

要求:

1、以季节 (春夏秋冬) 和季节单词的前2个字母 (小写) 为键,季节单词为键值创建字典。如:键 "春" 的值为 "Spring" 。

2、程序运行时输入季节或单词的前1-2个字母 (不区分大小写),输出季节的完整单词。如果无匹配,输出 ERROR。

3、程序保存到:s6t2.py

4、程序执行效果 1:

输入季节或单词的前1-2个字母:春

Spring

5、程序执行效果 2:

输入季节或单词的前1-2个字母:s

Spring,Summer

【参考与提示】

求解思路:

1、根据任务要求创建字典d。

2、使用 input 函数得到输入的字符串s。

3、将s中的字符全部转换为小写。

4、利用列表推导式从字典d的键中筛选出包含s的键对应的键值。设得到的列表为a。

列表推导式基本格式:

a=[元素 for k in d if 条件]

5、a为空输出ERROR,否则输出 ",".join (a)。



要求:

1、以星期数 ([1,7] 上的整数)、星期单词的前 2 个字母 (小写) 为键,星期单词为键值创建字典。如:键("1","mo") 的键值为 "Monday"。

2、程序运行时输入星期数或单词的前 1(或 2) 个字母 (不区分大小写),输出星期的完整单词。如果无匹配,输出 ERROR。

3、程序保存到:s6t2.py

4、程序执行效果 1:

输入星期数或单词的前 (或 2) 个字母:3

Wensday

5、程序执行效果 2:

输入星期数或单词的前 (或 2) 个字母:t

Tueaday,Thursday

【参考与提示】

求解思路:

1、根据任务要求创建字典d。

2、使用 input 函数得到输入的字符串s。

3、将 s 中的字符全部转换为小写。

4、利用列表推导式从字典 d 的键中筛选出包含 s 的键对应的键值。设得到的列表为a。

列表推导式基本格式:

a=[元素 for k in d if条件]

5、a 为空输出 ERROR,否则输出 ",".join (a)。 

 

任务3 字典的内置函数

要求:

1、创建字典:

a={'A':86,'B':98,'C':62,'D':92}

2、程序运行时等待用户输入字典a的元素。

(1)输入格式:键 = 键值

注:键为一个大写字母,键值为 [0,100] 上的整数

(2)如果元素的键在a中已经存在,则更新键的键值,否则添加元素到字典a。不考虑输入数据的有效性。

3、输出更新后字典a。

4、程序保存到:s6t3.py

5、程序执行效果1:

输入字典元素:B=83

更新后的字典a:

{'A':86,'B':83,'C':62,'D':92}

6、程序执行效果2:

输入字典元素:E=83

更新后的字典a:

{'A':86,'B':98,'C':62,'D':92,'E':83}

【参考与提示】

求解思路:

1、获得用户输入的字符串s。

2、得到键s[0] 和键值 s[2:]。

3、将键值转换为整数。

4、更新字典a。

方法:a[键]=键值

5、输出 a。

 

要求:

1、创建字典:

a={'A':86,'B':98,'C':62,'D':92}

2、程序运行时等待用户输入字典a的元素。

(1)输入格式:键 = 键值

注:键为一个大写字母,键值为整数。

(2)如果元素的键在 a 中已经存在,则以2个键值的按位或运算结果作为键值,否则不作处理。不考虑输入数据的有效性。

3、输出更新后字典a。

4、程序保存到:s6t3.py

5、程序执行效果 1:

输入字典元素:B=83

更新后的字典a:

{'A':86,'B':115,'C':62,'D':92}

6、程序执行效果2:

输入字典元素:C=80

更新后的字典 a:

{'A':86,'B':98,'C':126,'D':92}

【参考与提示】

求解思路:

1、获得用户输入的字符串s。

2、得到键s[0] 和键值 s[2:]。

3、将键值转换为整数v。

4、以 s[0]为键,值为v创建字典b。

5、利用字典推导式更新字典a。将字典 a 的每个键 k 的键值更新为 a[k] | b.get (k,0)

6、输出a。



任务4 集合的基本操作

要求:

1、程序运行时等待用户输入整数字符串s。

2、将s转换为集合 (元素为整数)。

3、得到 a与set ({3, 9, 21, 14, 5, 36, 8}) 中只为一个集合的元素组成的集合,并输出这个集合的元素个数。

4、程序保存到:s6t4.py。

5、程序执行效果:

输入字符串:9,12,38,8,9,3,8

元素个数=7

【参考与提示】

求解思路:

1、利用input函数得到输入的整数串s。

2、使用eval函数将s转换为元组s。

3、利用set将s转换为集合a。

4、利用集合运算得到a与b的对称差集c。

5、利用len函数计算集合c的元素个数n。

6、输出n。

 

任务5 集合的内置函数

根据注释将以下代码中的大写字母替换为适当的内容。

a={10, 5, 12, 16, 7, 3}

b={7, 6, 8, 10}

a=A(b)        #a中删除与b共有的元素

k=B(a)         #求a集合元素的最大值

a=C(k)        #从集合a中删除元素k

s=input("输入4个整数:")

b=D(s)        #将s转换为元组

a.E(b)        #b的元素添加到a

m={3, 9, 13}

b=a.F(m)        #求集合a是否包含b

a.G(m+5)         #将m+5添加到集合a

print(f"输出结果:{m},{len(a)}")

要求:

1、各大写字母可用选项:eval、update、set、frozenset、int、min、max、remove、pop、discard、issuperset、tuple、issubset、difference_update、difference、union、add、intersection、intersection_update、isdisjoint、symmetric_difference、symmetric_difference_update、pop。

2、程序保存到:s6t5.py

3、程序执行效果:

输入 4 个整数:4, 8, 9, 9

输出结果:False,6

【参考与提示】

1、集合的内置函数。

2、int (s): 将整数字符串转换为整数。

3、len(x): 计算可迭代对象 x 的数据个数。