




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 程序控制结构参考学时6课时教学目标理解三种基本程序控制结构,能恰当选择单分支、双分支和多分支编写程序理解for-in遍历循环和和while条件循环的差异掌握continue语句和break语句在循环中的使用方法了解for-in-else和while-else结构的使用方法和应用场合掌握嵌套循环的设计思路掌握random库的常用函数的调用方法教学重难点教学重点:能够使用三种基本程序结构解决基本的编程问题教学难点:理解随机种子数的含义,能用random解决实际问题,如生成随机短信验证码和随机密码教学主要内容本章知识框架如下:顺序结构分支结构单分支结构双分支结构多分支结构for-in循环语句while循环语句continue语句与break语句for-in-else和while-else语句嵌套循环random库教学的过程及方法顺序结构1.基本原理:代码的执行顺序和程序代码编写的顺序保持一致2.结构流程图3.实质:代码的执行顺序和程序代码编写的顺序保持一致分支结构1.定义:程序根据条件判断结果而选择不同执行路径的一种运行方式2.算术运算符3.比较运算符4.逻辑运算符单分支结构1.单分支结构的语法格式为:if<条件>:<语句块>说明:if所在行的末尾有一个英文冒号,然后换行书写若干语句形成语句块,含义是当条件成立时执行<语句块>的所有语句。<语句块>的每行语句必须有一次缩进。2.if语句的流程图当程序执行到if语句时,分析计算“条件”的结果,如果条件为真,则执行<语句块>,然后执行if语句的下一条语句,如果条件为假,则不执行<语句块>,直接转到if语句的下一条语句执行。双分支结构1.if-else语句的语法格式为:if<条件>:<语句块1>else:<语句块2>说明:if所在行末尾有一个“冒号”,else后面也有一个“冒号”。<语句块1>和<语句块2>的所有语句需要使用一次缩进。2.执行流程图多分支结构1.多分支结构语法格式为:if<条件1>:<语句块1>elif<条件2>:<语句块2>…else:<语句块N>2.多分支结构流程图for-in循环语句1.遍历循环的语法格式为:for<迭代变量>in<可迭代对象>:<循环体>执行for-in循环语句时,迭代变量依次从可迭代对象中取出元素,当所有元素从迭代对象取出后,循环语句结束。2.range()函数使用range()函数可以生成一个数值序列,返回的是一个可迭代对象,其类型是range,是一个对象。3.range()三种使用方式4.注意事项:for-in循环:当遍历完迭代对象后就结束,循环次数已知;“for-in”关键字“in”后面一定要跟一个可迭代对象while循环语句1.while循环与for…in…循环2.while循环的语法格式:while<条件表达式>:<循环体>当条件表达式为真,执行循环体里的操作3.讲解实例:计算累加和的值:1+2+3+…,直到累加和的结果达到或超过100时结束累加continue语句与break语句1.continue语句与break语句continue:仅结束本次循环,不跳出循环本身break:结束整个循环2.讲解实例:计算1-5之间偶数之和for-in-else和while-else语句for-in遍历循环for<变量>in<迭代对象>:<语句块1>else:<语句块2>while循环while<条件表达式>:<语句块1>else:<语句块2>注意1.循环语句else分支中的<语句块2>只在正常结束循环后才执行2.因为break或者return而退出的循环,不会执行else分支中的语句嵌套循环for-in遍历循环while循环random库伪随机数与计算机模拟计算机产生的每一个随机序列都需要一个输入信息作为随机种子,默认情况下随机种子来自于系统时钟。设置种子random.seed():seed()方法改变随机数生成器的种子相同种子:相同种子产生的随机数相同不同种子:不相同种子产生的随机数不相同random.seed():使用随机数种子的好处是可以复现虽随机数程序的运行结果random库的常用函数基本随机函数扩展随机函数函数功能说明及示例uniform(a,b)获取随机浮点数随机生成[a,b)或者[a,b]之间的一个随机小数。当a!=b时,生成介于两者之间的一个浮点数,当a==b时,则生成的浮点数为a>>>
random.uniform(10,100)22.91618932450376randint(a,b)获取随机整数随机生成闭区间[a,b]之间的一个整数>>>
random.randint(10,100)56randrange(a,b[,k])获取随机整数随机生成[a,b)之间以k为步长的整数序列中的一个整数,包含a但不包含b。如果不指定k,默认步长为1。也可以使用一个参数b,此时随机生成的整数范围为[0,b),包含0但不包含b>>>
random.randrange(1,7,2)
#在1,3,5中随机取一个数5>>>
random.randrange(1,7)
#在1~6中随机取一个数3>>>
random.randrange(7)
#在0~6中随机数取一个数1choice(seq)从序列随机取出元素从非空序列中随机取出一个元素,非空序列可以是列表、元组和字符串>>>
random.choice("student")'s'#随机从列表中取出一个元素>>>
random.choice([1,2,3,4,5,6,7,8,9])5shuffle(list)打乱列表中元素的顺序该函数的返回值是None。函数的参数为列表,它将列表中的元素打乱顺序。该函数是直接在原列表上改变元素的顺序>>>ls=[1,2,3,4,5,6,7,8,9]>>>print(random.shuffle(ls))None>>>print(ls)[2,5,4,9,3,6,8,1,7]输出列表ls发现它里面的元素已经改变了排列顺序sample(seq,k)从序列seq中随机取出k个元素该函数的返回值为列表。它从指定的序列(列表、元组或字符串)中随机选择k个元素形成新的列表返回,该函数不会修改原序列>>>old_tp=(1,2,3,4,5,6,7,8,9,10)#定义了一个元组#从元组old_tp中随机抽取5个不重复的元素形成列表并返回,该函数并不改变原序列本身>>>new_ls=random.sample(old_tp,5)>>>print(old_tp)(1,2,3,4,5,6,7,8,9,10)>>>print(new_ls)
[7,8,2,6,5]random库的随机函数使用要点能够利用随机数种子产生“确定”的伪随机数seed()生成种子,random()函数产生随机数能够产生随机整数,randint(a,b),randrange(a,b,[,k])能够对序列类型进行随机操作实例实例1:随机验证码方法一分析:生成4位纯数字验证码,可以使用random库提供的函数randint(0,9),调用一次产生一个0-9范围的数字,重复4次调用random.randint(0,9)得到四个随机数字,最后把这4个数字拼接起来就得到了4位数字验证码。数字拼接可以先将每个数字转换成字符串类型,然后通过字符串连接操作来完成。程序代码如下:importrandomcheck_code=''foriinrange(4):code=str(random.randint(0,9))check_code+=codeprint(check_code)方法二分析:可以将4位纯数字随机验证码看作一个4位随机整数,而4位随机整数的取值范围为在1000-9999之间,因此,只需调用函数random.randint(1000,9999)一次就能得到四位数字验证码。程序代码如下:importrandomcheck_code=random.randint(1000,9999)print(str(check_code))实例2:随机密码random库:sample()函数;shuffle()函数String模块string.asscii_uppercasestring.ascii_lowercasestring.digitsstring.punctuation由于密码中必须包含大小写字母、数字以及标点符号,首先,可通过string模块的ascii_uppercase属性获取全体大写英文字母,ascii_lowercase属性获取全体小写英文字母,digits属性获取所有数字字符和punctuation属性获取所有标点符号。再通过input函数输入密码的长度,假设用变量n保存。由于生成的密码必须包含大、小写字母、数字字符以及标点符号,因此,除去这四种字符各至少1个之后,另外还需生成(n-4)位的密码。因为没有规定每种字符最多只能包含多少个,所以可以这样调用随机函数random.randint(1,n-3)来产生大写英文字母的个数,记入变量len_upp中(第二个参数为n-3的原因是为小写字母、数字字符以及标点符号各预留了1个长度,这样,大写字母的最多个数为n-3)。再次调用random.randint(1,n-len_upp-2)来产生小写英文字母的个数,保存到变量len_low之中(小写字母的个数为n减去已经生成的大写字母个数len_upp,再减去2,2是为数字字符和标点符号预留的最小长度),使用类似方法的可以得到数字符号和标点符号的个数。在确定了构成密码的大、小写字母、数字字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市延庆区2022-2023学年高二上学期期末考试英语试卷(解析版)
- 2025年医疗数据安全管理计划
- 临床血液学检验技术复习测试卷附答案(一)
- 上海电力复习测试附答案
- 言语治疗练习试题及答案(一)
- 智能制造业安全保障措施
- 2024-2025学年二年级语文跨学科教学计划
- 部编版小学语文一年级下册阅读推广计划
- 脑肿瘤治疗药物综述
- 2024-2025学年天津市西青区七年级上学期期末考试地理试卷
- 宁夏回族自治区银川市兴庆区银川一中2025届高考压轴卷数学试卷含解析
- 门窗合同模板范文
- 上海市居住房屋租赁合同2014版
- 锌锭购销协议
- 静脉炎的预防及处理-李媛
- 云南省公路工程试验检测费用指导价
- 3.1 歌曲《大海啊故乡》课件(17张)
- 古诗词诵读《客至》课件+2023-2024学年统编版高中语文选择性必修下册
- 上海市地方标准《办公楼物业管理服务规范》
- 物理-陕西省2025届高三金太阳9月联考(金太阳25-37C)试题和答案
- 八年级历史下册 第五单元 第15课《钢铁长城》教案 新人教版
评论
0/150
提交评论