4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 26页
| 61人阅读
| 10人下载
普通

内容正文:

任务4.5 集合 调查问卷中随机调查对象的确定 4.5 集合——调查问卷中随机调查对象的确定 【任务描述】 导师想做一项问卷调查,需随机抽取学生完成调查,小T辅助导师一起开展这项工作。为了实验的客观性,小T在2000名同学中随机抽取500名同学完成这项调查,他想先通过计算机程序生成n个(n为进行调查问卷的人数,人数少于2000人)1到2000之间的随机整数,要求抽取同学的序号不能重复。然后再把这些数从大到小排序,按照排好的顺序去找对应学号的同学来填写调查问卷。 4.5 集合——调查问卷中随机调查对象的确定 调查对象的抽取 5000号中随机抽800 不能重复 集合 4.5 集合——调查问卷中随机调查对象的确定 【任务分析】 数据类型中存储的元素不能相同,可以利用Python中的集合来解决,编程思路如下: (1)输入需进行问卷调查的人数。 (2)循环产生随机数,并加入到随机数集合中。 (3)判断随机数集合中的元素个数是否达到需进行问卷调查的人数。若已达到,则跳出循环。 (4)对随机数集合中的元素进行排序并输出,确认随机数个数是否达到需要进行问卷调查的人数。 4.5 集合——调查问卷中随机调查对象的确定 4.5.1 集合的基本操作:创建、运算 4.5.2 集合的常用方法:添加、删除 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 4.5.2 集合的常用方法 4.5.2 集合的常用方法 集合元素的添加 集合元素的删除 1.集合元素的添加——add、update (1)set.add(x):返回添加了x元素的集合。 add()方法用于给集合添加单个元素,如果添加的元素在集合中已存在,则不执行添加操作。 4.5.2 集合的常用方法 【例4-62】使用add()添加集合元素。 setName={'李白','杜甫','王维','苏轼'} setName.add('李清照') print(setName) {'李清照', '王维', '苏轼', '杜甫', '李白'} 4.5.2 集合的常用方法 (2)set.update({x,...}):返回添加了多个元素{x,...}的集合。 使用update()方法可以批量增加集合中的元素,当然如果添加的新元素在集合中存已在,则该元素只会出现一次。 4.5.2 集合的常用方法 4.5.2 集合的常用方法 setName={'李白','杜甫','王维','苏轼'} setName.update({'李清照', '李白', '陆游'}) print(setName) {'杜甫', '王维', '苏轼', '李白', '李清照', '陆游'} 【例4-63】使用update()添加集合元素。 2.集合元素的删除remove、discard、pop、clear (1)删除集合中指定的元素,可以用remove()、dicard()方法来实现。这两种方法的区别如下: s.remove(x)表示从集合s中删除x,若x不存在,则会引发KeyError错误。 s.discard(x)表示从集合s中删除x,若x不存在,则不会出现错误。 4.5.2 集合的常用方法 4.5.2 集合的常用方法 setName={'李白','杜甫','王维','苏轼'} setName.remove('苏轼') print(setName) setName.discard('李白') print(setName) setName.discard('苏轼') print(setName) setName.remove('李白') print(setName) {'杜甫', '李白', '王维'} {'杜甫', '王维'} {'杜甫', '王维'} Traceback (most recent call last): File "D:\源代码\3.5.2集合的常用方法.py", line 19, in <module> setName.remove('李白') KeyError: '李白' 【例4-64】集合元素的删除1。 (2)使用pop()和clear()方法可以清除集合中的元素, s.pop()删除集合中的任意一个元素 s.clear()删除集合中的所有元素 4.5.2 集合的常用方法 4.5.2 集合的常用方法 {'王维', '李白', '苏轼'} set() setName={'李白','杜甫','王维','苏轼'} setName.pop() #删除集合中任意随机元素 print(setName) setName.clear() #空集合 print(setName) 【例4-64】集合元素的删除1。 4.5.2 集合的常用方法 边学边练: 有两个集合,set1={‘排球’,‘足球’,‘乒乓球’,’羽毛球’},set2={‘游泳’,‘健身’,’跑步’,’乒乓球’,‘羽毛球’,},请进行以下操作: (1)在set1中加入篮球、网球、冰球三个元素;往set2中加入“健美操”元素; (2)删除set2中乒乓球、羽毛球元素; (3)清除set1中所有元素。 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 【任务描述】 导师想做一项问卷调查,需随机抽取学生完成调查,小T辅助导师一起开展这项工作。为了实验的客观性,小T在2000名同学中随机抽取500名同学完成这项调查,他想先通过计算机程序生成n个(n为进行调查问卷的人数,人数少于2000人)1到2000之间的随机整数,要求抽取同学的序号不能重复。然后再把这些数从大到小排序,按照排好的顺序去找对应学号的同学来填写调查问卷。 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 调查对象的抽取: 学生总人数为2000人 随机抽取n人(n<2000) 如何产生随机数? 如何确认人数? 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 【任务分析】 小T欲协助导师完成问卷调查工作,他首先需要随机抽取调查对象。在2000人中随机抽取不重复的n人(因篇幅限制,现抽取60人),编程思路如下: (1)输入需进行问卷调查的人数。 (2)循环产生一个随机数,并加入到随机数集合中。 (3)判断随机数集合中的元素个数是否达到需进行问卷调查的人数。若已达到,则跳出循环。 (4)对随机数集合中的元素进行排序并输出,确认随机数个数是否达到需进行问卷调查的人数。 (3)循环产生随机数,并加入到随机数集合中;判断集合中元素个数是否达到调查问卷人数,若已达到,则跳出循环 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 输入需进行调查问卷的人数 按序号排序输出 是否已循环2000次 产生随机数,加入到集合中 Y 定义空集合,存储 N (1)输入需进行调查问卷的人数 (2)定义空集合,存储调查对象序号 (4)对集合中的元素进行排序并输出 是否已满足问卷人数 循环中断break N Y 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 import random n = eval(input('请输入您要进行调查问卷的人数:')) #输出需进行调查问卷的人数 【例4-66】调查问卷中随机调查对象的确定。 (1)输入需进行调查问卷的人数 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 s=set([]) #定义空集合s,存储随机产生的数值 (2)定义空集合,存储调查对象序号 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 (3)循环产生随机数,并加入到随机数集合中;判断集合中元素个数是否达到调查问卷人数,若已达到,则跳出循环 for i in range(3000): num=random.randint(1,2001) # 产生1~2000之间的随机数 s.add(num) # 将产生的随机数加入到集合中 if(len(s))>=n: # 判断集合中元素个数,如果超出人数,就跳出for循环 break 补充知识: random.randint(low,high)随机产生一个正整数,该函数返回[low,high) 的一个正整数。 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 print('产生随机数次数为%d个。'%i) #输出集合 print('去重后随机数集合:',s) #输出集合 print('去重后随机数排序后的列表:',sorted(s)) #将集合中元素进行从小到大排序,集合将转换成列表 print('去重后的元素个数为%d' %len(s)) #输出排序后产生随机数的列表元素个数 (4)对集合中的元素进行排序并输出 4.5.3 集合任务实现——调查问卷中随机调查对象的确定 请输入您要进行调查问卷的人数:60 产生随机数次数为61次 随机数集合: {637, 1670, 1799, 390, 265, 1930, 908, 1299, 152, 536, 1947, 1405, 287, 1957, 1574, 37, 1069, 1456, 305, 52, 1333, 1588, 951, 1082, 1723, 1724, 1210, 956, 1345, 1089, 835, 580, 1477, 1097, 843, 1227, 77, 1614, 79, 717, 1873, 978, 908,1494, 215, 985, 1886, 991, 1120, 1249, 1380, 1007, 1904, 1009, 753, 1647, 630, 1014, 1656, 381, 1278} 去重后随机数排序后的列表: [37, 52, 77, 79, 152, 215, 265, 287, 305, 381, 390, 536, 580, 630, 637, 717, 753, 835, 843, 908, 951, 956, 978, 985, 991, 1007, 1009, 1014, 1069, 1082, 1089, 1097, 1120, 1210, 1227, 1249, 1278, 1299, 1333, 1345, 1380, 1405, 1456, 1477, 1494, 1574, 1588, 1614, 1647, 1656, 1670, 1723, 1724, 1799, 1873, 1886, 1904, 1930, 1947, 1957] 去重后的元素个数为60 运行结果 $$

资源预览图

4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
1
4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
2
4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
3
4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
4
4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
5
4.5.2 集合的常用方法(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。