当前位置: 首页 > news >正文

与众不同的网站黑客软件资源网站

与众不同的网站,黑客软件资源网站,成都医院手机网站建设,湘潭天元建设集团有限公司一、python模块 先创建一个 .py 文件#xff0c;这个文件就称之为 一个模块 Module。 使用模块的优点#xff1a; 模块化编程#xff0c;多文件编程 1.2 模块的使用 1.2.1 import语句 想要B.py文件中#xff0c;使用A.py文件#xff0c;只需要在B.py文件中使用关键字…一、python模块 先创建一个 .py 文件这个文件就称之为 一个模块 Module。 使用模块的优点 模块化编程多文件编程 1.2 模块的使用 1.2.1 import语句 想要B.py文件中使用A.py文件只需要在B.py文件中使用关键字import导入即可。 import A # 若A是一个包的话可以这样写 import A.函数名 1.2.2 from ···import···语句 在python中导入一个模块/文件通常使用关键字import若是只想导入一个模块某个属性或方法我们可以使用 from ... import ...语句。 语法格式 from 模块名/包名 import 属性名, 函数名 1.3 Python中的包 随着模块数目的增多把所有模块不加区分地放到一起就显得非常不合理了于是Python为我们提供了一种把模块组织到一起的方法即创建一个包。 因为包是模块所以包的使用和普通模块的使用方式是一样的。 1.3.1 什么是包 模块 就是 一个 .py 文件 包 就是一个包含 __init__.py文件的 文件夹文件夹中可以包含子包或者模块。 创建包的目的不是为了运行而是为了被导入使用包的本质就是模块因此可以将包当做模块来导入。 包是不能像普通模块那样被执行代码所以包提供了一个__init__.py文件导入包就会执行__init__.py文件这也是__init__.py文件存在的意义。 1.3.2 如何使用包 1.3.3 导入自定义包 导入自定义的包必须确保包在Python的搜索路径中 Python在导入包时会查找特定的目录列表这个列表通常包括 当前脚本所在的目录。环境变量PYTHONPATH中指定的目录。 Python安装目录中的库目录如Lib/site-packages。 为了确保你的自定义包可以被导入你需要确保它的目录在上述列表中的一个。最常见的方法是将你的包放在当前脚本所在的目录或一个子目录中或者将包的目录添加到PYTHONPATH环境变量中。 1.4 Python常用标准库 Python 标准库非常庞大所提供的模块涉及范围十分广泛使用标准库我们可以让您轻松地完成各种任务。 下面是一些Python3中常用的标准库。 模块名称 模块描述 os os 模块提供了许多与操作系统交互的函数例如创建、移动和删除文件和目录以及访问环境变量等。 sys sys 模块提供了与 Python 解释器和系统相关的功能例如解释器的版本和路径以及与 stdin、stdout 和 stderr 相关的信息。 time time 模块提供了处理时间的函数例如获取当前时间、格式化日期和时间、计时等。 datetime datetime 模块提供了更高级的日期和时间处理函数例如处理时区、计算时间差、计算日期差等。 math math 模块提供了数学函数例如三角函数、对数函数、指数函数、常数等。 json json 模块提供了 JSON 编码和解码函数可以将 Python 对象转换为 JSON 格式并从 JSON 格式中解析出 Python 对象。 numpy 一个用于维度数组计算的库 opencv 一个用于计算机视觉的库 matplotlib 一个用于数据可视化的库(绘图) scikit-learn 一个用于机器学习的库 tensorflow 一个用于深度学习的库 threading 一个用于设置多线程的库 二、迭代器与生成器  2.1 迭代器 迭代是python访问集合中元素的一种方式迭代器是一个可以记住遍历的位置的对象。 举例 使用map()函数将一个函数作用于一个序列中的所有元素并返回一个迭代器——对迭代器可以再次转换成list tuple set等等等 迭代器对象从集合的第一个元素开始访问直到所有的元素被访问完结束。迭代器只能往前不能后退。 迭代器有两个基本的方法iter() 和 next()。 StopIteration StopIteration 异常用于标识迭代的完成防止出现无限循环的情况在__next__()方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代 创建一个迭代器 把一个类作为一个迭代器使用需要在类中实现两个方法 iter() 与 next() 。 iter() 方法返回一个特殊的迭代器对象这个迭代器对象实现了 next() 方法并通过 StopIteration 异常标识迭代的完成。next() 方法会返回下一个迭代器对象。 # 创建一个返回数字的迭代器起始值为10逐步递增10 # 也就是说起始值是10步长值为10 class num:def __iter__(self):self.a 0return selfdef __next__(self):if self.a 100:x self.aself.a 10return xelse:raise StopIteration#实例化对象 ls num() iter1 iter(ls) try:while True:print(next(iter1),end ) except StopIteration:print(迭代完成) #0 10 20 30 40 50 60 70 80 90 100 迭代完成 练习# 实现一个自定义迭代器类MyRange其功能类似于内置的range()函数           # 但要求支持步长参数并且只能从0开始迭代 class myiter:def __init__(self,end,spet):self.start 0self.end endself.spet spetdef __iter__(self):return selfdef __next__(self):if self.startself.end:x self.startself.startself.spetreturn xelse:raise StopIterationresult myiter(5,2) iter1 iter(result) try:while True:print(next(iter1)) except StopIteration:print(迭代结束)0 2 4 迭代结束2.2 生成器 在python中使用了 yield 的函数就被称为——生成器。 yield 是一个关键字用于定义生成器函数生成器函数是一种特殊的函数可以在迭代过程中逐步产生值而不是一次性返回所有结果。 与普通函数不同的是生成器是一个返回迭代器的函数只能用于迭代操作更简单的理解【生成器就是一个迭代器】。 每次使用yield语句生产一个值之后函数都将暂停执行【内存释放出来】等待再次唤醒。 yield语句和return语句的差别就在于yield语句返回的是可迭代对象而return返回的是不可迭代对象。 每次调用生成器的next()方法或者使用for或while循环进行迭代时函数会从上次暂停的地方继续执行直到再次遇见yield语句。 def create(n):while n0:yield nn-1create_iter create(5) print(next(create_iter))#5 print(next(create_iter))#4 print(next(create_iter))#3 print(next(create_iter))#2 print(next(create_iter))#1 # print(next(create_iter))会报错StopIteration# for i in create_iter: # print(i,end ) 生成器的优势是它们是按需生成值避免一次性生成大量数据并占用大量内存此外生成器还可以与其他迭代工具如for循环无缝衔接配合使用提供了更加简洁和高效的迭代方式 练习 使用生成器实现一个函数fibonacci(n)该函数返回一个生成斐波那契数列的生成器 其中n表示生成斐波那契数列的元素个数。 def fun(n):a,b 1,1while n:yield aa,b b,abn-1 n fun(5) try:while True:print(next(n)) except Exception as f:print(f) 三、正则表达式 正则表达式是一个特殊的字符序列它能帮助你方便的检查一个字符串是否与某种模式匹配。re模块使 Python 语言拥有全部的正则表达式功能。 一个正则表达式的匹配工具regex101: build, test, and debug regex s C:\\a\\b\\c print(s)#C:\a\b\c# 正则表达式中遇见 \ 为转义字符自动转义 # 若在前面加 r 说明是原生字符串不转义s1 rC:\\a\\b\\c print(s1) #C:\\a\\b\\c 3.1 re.match函数 re.match 是从字符串的起始位置匹配一个模式匹配不成功就返回None。 语法re.match(pattern, string, flags0) 参数          pattern 需要匹配的正则表达式          string 匹配的字符串          flags 标志位用于控制正则表达式的匹配方式 如是否区分大小写多行匹配等 若匹配到了数据就可以使用group(num) 或 groups() 来提取数据了。 group(num0) 匹配整个字符串可以设置参数 groups() 返回一个元组包含所有小组字符串的元组 import re s hello and world ret re.match(hello,s) print(ret.group())#helloret2 re.match(and,s) print(ret2.group())#error 3.2 re.search函数 re.search 扫描整个字符串并返回第一个成功匹配的字符串。 import re s and hello and and world ret re.search(and,s) print(ret.group())#and返回第一个能匹配的3.3 re.findall函数 re.findall 匹配整个字符串返回string中所有与pattern相匹配的全部子串返回形式为数组 import re s and hello and and world ret re.findall(and,s) print(ret)#[and, and, and] 3.4 matchr、search、findall的区别 re.match 从首字母匹配如果字符串开始不符合正则表达式则匹配失败函数返回 None。re.search 匹配整个字符串直到找到一个对应匹配【若有多个也只返回第一个】。re.findall 返回匹配到的所有子串。 3.5 正则表达式修饰符 - 可选标志 正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。如 re.I | re.M 被设置成 I 和 M 标志 修饰符 描述 re.I 使匹配对大小写不敏感。 re.L 做本地化识别locale-aware匹配。 re.M 多行匹配影响 ^ 和 $。 re.S 使 . 匹配包括换行在内的所有字符。 re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B。 re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 import re s and hello and And world ret re.findall(and,s,re.I) print(ret)#[and, and, And]ret2 re.findall(and,s) print(ret2)#[and, and] 3.6 正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式。 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。多数字母和数字前加一个反斜杠时会拥有不同的含义。标点符号只有被转义时才匹配自身否则它们表示特殊的含义。反斜杠本身需要使用反斜杠转义。 由于正则表达式通常都包含反斜杠所以你最好使用原始字符串来表示它们。 import re s __ 888 hqyj 666 ret1 re.findall(., s) ret2 re.findall([h6], s) ret3 re.findall(r\d, s) ret4 re.findall(r\D, s) ret5 re.findall(r\w, s) ret6 re.findall(r\W, s)print(ret1)#[_, _, , 8, 8, 8, , h, q, y, j, , 6, 6, 6, , , , , , ] print(ret2)#[h, 6, 6, 6] print(ret3)#[8, 8, 8, 6, 6, 6] print(ret4)#[_, _, , , h, q, y, j, , , , , , , ] print(ret5)#[_, _, 8, 8, 8, h, q, y, j, 6, 6, 6] print(ret6)#[ , , , , , , , , ] #匹配出一个字符串第一个字母为大写字符 #后面都是小写字母并且这些小写字母可有可无 import re def fun1(n):ret re.match([A-Z][a-z]*, n)if ret:print(ret.group())else:print(匹配不成功) n input() fun1(n)#匹配变量名是否有效 def fun2(m):ret2 re.match(r[A-Za-z_]\w*,m)if ret2:print(ret2.group())else:print(input error) m input() fun2(m)# 匹配出8到20位的密码可以是大小写英文字母、数字、下划线 def fun3(b):ret3 re.match(r\w{8,20},b)if ret3:print(ret3.group())else:print(input error) b input() fun3(b) import re #匹配163.com的邮箱地址 # 以^确定开头 # 通过$来确定末尾 myemail hqyj_sunwy163.com ret re.match(r^\w{4,20}163\.com$, myemail) print(ret.group()) import re#匹配出163、126、qq邮箱 myemail 2042856895qq.com ret re.match(r^\w{4,20}(163|126|qq)\.com$, myemail) print(ret.group())#匹配出htmlh1www.bawei.com/h1/html ret re.match(r(\w*)(\w*).*/\2/\1, htmlh1www.hqyj.com/h1/html) print(ret.group())#匹配出htmlh1www.bawei.com/h1/html ret re.match(r(?Pname1\w*)(?Pname2\w*).*/(?Pname2)/(?Pname1), htmlh1www.hqyj.com/h1/html) print(ret.group()) 注意贪婪和非贪婪 贪婪是尝试匹配尽可能多的字符。 非贪婪是尝试匹配尽可能少的字符。 解决方式非贪婪操作符”?”用在*,,?的后面要求正则匹配的越少越好。 import re s abbcdef123456 ret re.match(r\w, s) print(ret.group()) # 输出结果abbcdef123456 ret re.match(r\w?, s) print(ret.group()) # 输出结果a 练习 注册用户 1、输入邮箱邮箱验证 6-16位非特殊字符的163邮箱。 2、输入手机号进行手机号验证。11位数字第一位是1第二位是2到9其余0到9 3、输入用户名不少于非特殊4位字符。 4、输入昵称不少于2个字符。 5、输入密码必须包含字母、数字特殊符号。 输入正确则提示注册成功不正确则重新输入。 import re def user():d {}count1 0while True:a input(输入邮箱)t1 re.match(r\w{6,16}163\.com$,a)if t1.group():d[邮箱] t1.group()count11breakelse:print(输入错误请重新输入)while True:b input(输入电话号码)t2 re.match(r[1][3-9]\d{9}, b)if t2.group():d[电话号码] t2.group()count1 1breakelse:print(input error)while True:c input(用户名)t3 re.match(r\w{4,},c)if t3.group():d[用户名] t3.group()count1 1breakelse:print(input error)while True:f input(昵称)t4 re.match(..,f)if t4.group():d[昵称] t4.group()count1 1breakelse:print(input error)while True:e input(密码)t5 re.match(r.{6},e)if t5.group():d[密码] t5.group()count1 1breakelse:print(input error)if count1 5:return dprint(user()) 3.8 re.split函数 功能是分割 import re s user:zhangsan pwd:888666 ret re.split(r:| , s) print(ret) 3.9 re.sub函数 功能是替换 import re s i am zhangsan, i am 18 year, i like eat ret re.sub(ri, I, s) print(ret)
http://www.dnsts.com.cn/news/226153.html

相关文章:

  • 建设企业网站需注意什么企业全屏网站
  • 平湖建设局网站深圳网站建设外贸
  • 网站建设的技术支持论文个人网页末班
  • 网站建设考核标准产品外观设计流程
  • 上海市城乡建设网站福州模板建站代理
  • org域名怎么注册深圳seo优化seo关键词
  • 专业公司网站建设相亲网站上做投资的女生
  • 成都做网站设网站建设及优化的策划书
  • 做网站编程时容易遇到的问题网站新闻模板
  • 网站建设的技术体会广告公司简介免费
  • 如何做好一个网站的推广外链怎么打开
  • 网站常州建设设计制作合同交印花税吗
  • 承德网站建设规划建立网站内容需要做的事
  • 小县城做服务网站wordpress文章页的三大标签
  • wordpress如何建立网站开网店被运营公司骗了怎么办
  • 祁东县建设局网站织梦 两个网站
  • wordpress 做企业网站环保公司宣传册设计样本
  • 哪个网站可以给图片做链接各大网站收录提交入口
  • 做充值网站网站开发进度设计
  • 网站微营销公司哪家好合肥网页设计公司校企合作
  • 单位如何建设网站大学生作业做网站
  • 自己做公众号和小说网站推广手机网页开发者模式
  • 网页设计与网站建设课后习题答案网站建设宣传图片
  • 金阊网站建设做网站网页的软件是绿色的图标什么
  • 项目网站开发WordPress十万数据
  • 网站制作器WordPress问答插件路由
  • 品质网站建设wordpress从数据库删除插件
  • 网站代码加密了怎么做河南平顶山网站建设与管理专业
  • 网站根目录文件佛山专业做网站公司
  • 网站制作需要什么资料番禺区营销型网站建设