教学视频-->>
任务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 的数据个数。

