Python程序设计任务驱动式教程-4.6 随机验证码的生成 代码复用与模块化程序设计_第1页
Python程序设计任务驱动式教程-4.6 随机验证码的生成 代码复用与模块化程序设计_第2页
Python程序设计任务驱动式教程-4.6 随机验证码的生成 代码复用与模块化程序设计_第3页
Python程序设计任务驱动式教程-4.6 随机验证码的生成 代码复用与模块化程序设计_第4页
Python程序设计任务驱动式教程-4.6 随机验证码的生成 代码复用与模块化程序设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

统计正负数——函数的定义与调用播报当日天气——函数的参数传递外卖订单序号生成——变量作用域求n!——递归函数将十进制IP地址转换为二进制数——常用的内置函数随机验证码的生成——代码复用与模块化程序设计实例

用模块实现普通计算器功能。内容提要生成一个6位随机验证码。【任务描述】导入random库,用循环控制产生6个随机数(数字或字母),每产生一个与前面的随机码进行连接,最终生成一个6位随机码。【任务分析】用importrandom导入random库,在for循环的循环体里调用random.choice()函数,每次产生一个0~9之间或A~Z之间的随机数,与前面的随机数进行字符连接,形成一个新的随机码,循环执行6次,就生成了一个6位随机码。【任务实施】代码实现:importrandom

#导入随机模块randomdefrcode():

#定义函数rcodecode=""

#给code赋空值foriinrange(6):#循环5次,生成一个5位的验证码add=random.choice([random.randrange(10),chr(random.randrange(65,91))]) code+=str(add)

#把最新产生的一个字符连接到原rcode后print("生成的6位随机验证码为:",code)rcode()

#调用函数rcode运行结果:生成的6位随机验证码为:T5KAT8注意:必须先导入random才能使用标准库函数。random.choice(seq)也叫抽样函数,其中的参数seq可以是一个列表,元组或字符串。random.randrange()方法返回指定范围内的随机数。案例代码中的random.randrange(10),指的是取0~9之间的任意一个数字,random.randrange(65,91),指的是取ASCII码介于65~90之间(即大写字母A~Z)的任意一个字母,chr()函数的作用将一个整数转换为对应的ASCII码字符。【任务相关知识链接】Python作为高级编程语言,适合开发各类应用程序。程序由一条条语句实现,当程序功能复杂,代码行数很多时,如果不采取一定的组织方法,就会使程序的可读性变差,后期也难以维护。因此,Python中,代码可以按以下方式一层层地组织:(1)使用函数将完成特定功能的代码进行封装,然后通过调用来完成该功能。(2)将一个或几个相关的函数保存为.py文件,构成一个模块(Module)。导入该模块,就可以调用模块中定义的函数。(3)一个或多个模块连同一个特殊的文件__init__..py保存在一个文件夹下,形成包(Package)。包能方便地分层次组织模块。模块的概念模块的导入方式常用的标准模块和模块函数自定义模块第三方模块包模块的概念模块是一个以.py为扩展名的文件,文件由语句以及函数组成。例如,a.py就是一个名为a的模块文件。文件定义成模块后,只要在其他函数或主函数中引用该模块,就可以调用该模块中的函数,起到代码重用的目的。在不同的模块中可以使用相同名称的函数和变量。Python中的模块可分为三类,分别是内置模块、第三方模块和自定义模块,具体介绍如下:内置模块是Python内置标准库中的模块,也是Python的官方模块,可直接导入程序使用。第三方模块是由非官方制作发布的、供大众使用的模块,在使用之前需要开发人员先自行安装。自定义模块是开发人员在编程过程中自行编写的、存放功能性代码的.py文件。模块的概念模块的导入方式Python模块的导入有两种方式:1.使用import语句导入语法格式为:import模块1,模块2,…例如,importmath,random,分别导入math,random两个模块模块导入后就可以通过“模块名.函数名()/类名/变量名”这种方式来使用模块中的函数名\类或变量名,例如,math.sqrt(4)就是使用模块中sqrt()函数来求4的算术平方根。当一个模块名字比较长时,可使用as为这个模块起别名,例如,importrandomasran。2.使用from…import…语句导入语法格式为:from模块名import函数名()/类名/变量名使用这种方式导入模块之后,无需添加前缀,可以像使用当前程序中的内容一样使用模块中的内容。例如,frommathimportsqrtassq,sin,分别导入math模块中的sqrt()和sin()函数,并且给sqrt()函数起别名sq。利用通配符“*”可使用from…import…导入模块中的全部内容。例如:frommathimport*常用的标准模块和模块函数Python内置了许多标准模块(也称为标准库,Python中的库是借用其他编程语言的概念,没有特别具体的定义,Python库着重强调其功能性。在Python中,具有某些功能的模块和包都可以被称作库。),常用的标准模块有math、random、sys、os、time等。math模块也称数学模块,其中提供了大量与数学计算有关的对象,常用的对象如表4-4所示。math模块表4-4math模块函数/常数举例:math模块函数的使用。代码实现:importmatha=4.2print("对%f上、下取整结果分别为:%d,%d"%(a,math.ceil(a),math.floor(a)))运行结果:math模块注意:使用import语句导入的math模块,使用math模块函数时一定要在函数名前面加上模块名。

例如math.ceil(a),否则程序会报错“name'ceil'isnotdefined”。对4.200000上、下取整结果分别为:5,4random模块也称随机模块,其中提供了大量与随机数和随机函数有关的对象,常用的函数如表4-5所示。random模块表4-5random模块函数举例:random模块函数的使用。代码实现:fromrandomimport*print("产生一个[1,5]之间的随机整数:",randint(1,5))运行结果:random模块注意:使用fromrandomimport*语句导入的模块,使用模块中函数时一定不要在函数名前面加上模块名,例如randint(1,5),否则系统会报错。产生一个[1,5]之间的随机整数:1time模块也称时间模块,其中提供了一系列处理时间的函数,常用的函数如表4-6所示。time模块表4-6time模块函数举例:time模块函数的使用,求计算10001000用时多少秒。代码实现:fromtimeimport*beforetime=time()c=pow(1000,1000)aftertime=time()print("计算pow(1000,1000)用时:%.8f秒"%(aftertime-beforetime))运行结果:time模块计算pow(1000,1000)用时:0.00099802秒sys模块主要负责与python解释器进行交互,它提供了一系列用于控制python运行环境的函数和变量,常用的对象如表4-7所示。sys模块表4-7sys模块函数举例:sys模块函数的使用。代码实现:fromsysimport*print("命令行参数列表:",argv)print("Python版本:",version)print("操作系统平台的名称:",platform)运行结果:sys模块sos模块提供了访问操作系统服务的功能,该模块常用的函数如表4-8所示。os模块表4-8os模块函数举例:sys模块函数的使用。代码实现:fromosimport*print("当前工作路径为:",getcwd())chdir("d:/Python学习")print("当前工作路径为:",getcwd())_exit运行结果:os模块自定义模块自定义模块是开发人员在编程过程中自行编写的、存放功能性代码的.py文件。下列介绍自定义模块的创建和使用。举例:创建一个含有变量和函数的模块后,导入使用该模块中的变量和函数。代码实现:把以下代码定义成一个模块,存为:D:\Python学习\pryear.pyyear=2023defprintyear():print("今年是%d年"%year)然后,导入pryear模块,并使用该模块中的printyear函数。importsyssys.path.append("D:\Python学习")importpryearprint(pryear.printyear())运行结果:自定义模块

注意:如果模块的存储路径不在模块的搜索路径列表中,系统就会提错,不识别该模块,这种情况下,可先用sys.path.append("D:\Python学习")将路径"D:\Python学习"先添加到搜索路径列表中,然后再导入和使用。今年是2023年包为了更好地组织Python代码,开发人员通常会根据不同业务将模块进行归类划分,并将功能相近的模块放到同一级目录下。如果想要导入该目录下的模块,就需要先导入包。包的导入和模块的导入类似,也可使用import和from…import两种方式。用前者导入的包,在使用包中的模块中的函数时,需要加包名作为前缀,例如:包名.pryear.printyear()。第三方模块程序开发时不仅需要使用大量的标准模块,根据业务需求可能还会使用第三方模块(也称为第三方库)。常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论