5.15 struct模块

  1. pack 能够把所有的数字都固定的转换成4字节

5.16 dis

  1. dis.dis 查看计算机指令

5.16 正则表达式

  1. 基础

    1. 正则表达式概念: 是一种规则(元字符,量词)

      正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    2. re 模块和正则表达式的关系

    re 模块本身只是用来操作正则表达式,和正则表达式一点关系都没有

    1. 应用;

    匹配字符串

    表单验证

    爬虫

  2. [ ] 字符组

    • 本身是哪一个字符,就匹配字符串中哪一个字符

    • 字符组[字符1字符2],一个字符组就代表匹配一个字符,只要这个字符出现在字符串中,那么久说明这个字符能匹配上

    • 字符中还可以使用范围

    • 所有的范围都必须遵循ascii码从小到大来指定

  3. 元字符

    1. \ 转义符 可以转义所有

      \ d (digit) 能匹配所有0-9之间的数字

      \w (word) 能匹配大小写字母,数字,下划线

      \s (space) 能匹配 空白 空格 换行符 制表符

      \ t (table) 只能匹配制表符

      \ n (next) 只能匹配换行符

    1. \D 表示除 数字所有

      \W 表示除 大小写字母,数字,下划线 的所有

      \S 表示除 空白 空格 换行符 制表符 的所有

    1. [\d\D] [\w\W] [\s\S] 能表示一切字符

      . 表示除换行符之外的任意内容

    1. [ ] 字符组只要在中括号内的所有字符都符合规则的字符

      [ ^ ] 字符组只要在中括号内的所有字符都不符合规则的字符

    2. ^ 表示一个字符,只匹配一个开头

      $ 表示一个字符的结束

      ^abc$ 表示约束以a开头,c结尾

    3. | 或 表示两个规则哟重叠的部分,总是长的在前面,短的在后面

      () 分组 表示给一部分正则规定为一组,| 这个符号的作用域就可以缩小了

  4. 量词

    1. { n } 表示只能出现n次

      { n, } 表示至少出现n次

      { n,m } 表示至少出现n次,至多出现m次

    2. ? 表示匹配0次或者1次,可有可无但是又只能有1个

      + 表示匹配一次或者多次

      * 表示匹配0次或者多次,可有可无但是有可以有多个

  5. 默认贪婪匹配:总是会在符合量词条件的范围为尽量多的匹配

    非贪婪匹配(惰性匹配):总是会匹配符合条件范围内尽量小的字符串

    元字符 量词 ?x 表示元字符规则在量词范围内匹配,一遇到x就会停止

    . * ? x 表示匹配任意的内容多次遇到X就会立即停止

    1. 元字符

    2. 元字符量词

    3. 元字符量词?

    4. \d+?x .*?x 爬虫

5.17 异常处理

  1. 基本格式

    try:
       pass
    except Exception as e:
       pass
    • 练习

      try:
         v = []
         v[11111] # IndexError
      except ValueError as e:
         pass
      except IndexError as e:
         pass
      except Exception as e:
         print(e) # e是Exception类的对象,中有一个错误信息。
      finally:
         print('最后无论对错都会执行')
      # 练习一
      import requests

      try:
      ret = requests.get('http://www.google.com')
      print(ret.text)
      except Exception as e:
      print('请求异常') # 练习二
      def func(a):
      try:
      return a.strip()
      except Exception as e:
      pass
      return False

      v = func('alex')
      if not v:
      print('函数执行失败')
      else:
      print('结果是',v)
    • 练习题

      # 1. 写函数,函数接受一个列表,请将列表中的元素每个都 +100
      def func(arg):
      result = []
      for item in arg:
      if item.isdecimal():
      result.append(int(item) + 100)
      return result

      # 2. 写函数去,接受一个列表。列表中都是url,请访问每个地址并获取结果。
      import requests
      def func(url_list):
      result = []
      try:
      for url in url_list:
      response = requests.get(url)
      result.append(response.text)
      except Exception as e:
      pass
      return result

      def func2(url_list):
      result = []
      for url in url_list:
      try:
      response = requests.get(url)
      result.append(response.text)
      except Exception as e:
      pass
      return result

      func(['http://www.baidu.com','http://www.google.com','http://www.bing.com'])
  1. 主动触发异常

    try:
       int('123')
       raise Exception('阿萨大大是阿斯蒂') # 代码中主动抛出异常
    except Exception as e:
       print(e)
       
       
    # 实例
    def func():
       result = True
       try:
           with open('x.log',mode='r',encoding='utf-8') as f:
               data = f.read()
           if 'alex' not in data:
               raise Exception()
       except Exception as e:
           result = False
       return result
  2. 自定义异常

    # 实例一
    class MyException(Exception):
       pass

    try:
       raise MyException('asdf')
    except MyException as e:
       print(e)
       
    # 实例二
    class MyException(Exception):
       def __init__(self,message):
           super().__init__()
           self.message = message

    try:
       raise MyException('asdf')
    except MyException as e:
       print(e.message)

    总结

    函数高级 5*

    • 嵌套

    • 装饰器

    模块分类和定义 4*

    • 内置模块

      • os

      • sys

      • ...

    • 第三方

      • requests

      • xlrd

    • 自定义模块

      • 文件

      • 文件夹 + init.py【包】

    导入模块

    • sys.path

    • 导入

      • import

      • from xx.xxx import xx

第五章 模块之 struct、dis、正则表达式、异常处理的更多相关文章

  1. 第五章 模块之 logging、copy、re

    5.12 logging 日志模块 报警等级 CRITICAL = 50 # 最高FATAL = CRITICALERROR = 40WARNING = 30WARN = WARNINGINFO = ...

  2. Python学习系列----第五章 模块

    5.1 如何引入模块 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入.在调用math模块中的函数时,必须这样引用: ...

  3. 第五章 模块之random 、hashlib、time /datetime

    5.2 random 返回随机生成的一个实数 random.randint() 返回随机生成的一个实数 import random #调用模块​def get_random_code(length=6 ...

  4. 第五章 模块之 shtil 、 json / pickle、importlib、collections

    5.8 shtil 高级的 文件.文件夹.压缩包 处理模块 shutil.rmtree 删除目录 import shutilshutil.rmtree(path) shutil.move 重命名:移动 ...

  5. 第五章 模块之 getpass、sys、os

    5.5 getpass 密码不显示(只能在终端运行) 密码不显示(只能在终端运行) import getpass​pwd = getpass.getpass('请输入密码:')if pwd == '1 ...

  6. 进击的Python【第五章】:Python的高级应用(二)常用模块

    Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigPar ...

  7. Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  8. 简学Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  9. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

随机推荐

  1. Vue.js中 watch的理解以及深度监听

    如代码: <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type=" ...

  2. Python中单引号和双引号的作用

    一.单引号和双引号 在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python' str2 = "python" str1和str2是没有 ...

  3. PHP如何解决网站大流量与高并发的问题(四)

    动态语言的并发处理 相关概念 什么是进程.线程.协程 什么是多进程.多线程 同步阻塞模型 异步非阻塞模型 php并发编程实践 什么是进程.线程.协程 进程 进程是一个执行中的程序 进程的三态模型:多道 ...

  4. android -------- java.net.UnknownServiceException

    最近升级了Android的API版本时 ,导致我的网络请求失败了, 出现了这个错误 java.net.UnknownServiceException, 这个错误,我在网上查到这个主要是由于,我们的Ok ...

  5. restful swagger api java go

    rest框架使用swagger api,接口越来越多后性能会很差,如何优化? - 知乎https://www.zhihu.com/question/59349319 golang restful 框架 ...

  6. Tomcat清理无用应用防止漏洞

    /webapps/host-manager /home/renguoqiang /webapps/manager /home/renguoqiang /webapps/host-manager rm ...

  7. 表单在ios下输入框必须重压或长按才能唤起软键盘

    解决方案: 一.在node_module里找到fastClick文件,然后找到focus方法,加一句focus方法即可解决:FastClick.prototype.focus = function(t ...

  8. mvn创建flink项目

    使用如下项目骨架创建flink项目,结果被官方的下面这个创建方式坑了.. mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ ...

  9. Linux_CentOS 打包压缩和别名管理

    Linux 打包压缩命令 目前 linux 中打包和压缩的命令很多,最常用的方法有 zip.gzip.bzip2.xz.tar 1.zip 压缩包 1.制作 zip -r public.zip pub ...

  10. openresty开发系列28--openresty中操作mysql

    openresty开发系列28--openresty中操作mysql Mysql客户端   应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢?   ...