day15——学习总结

异常捕获

  1. 什么是异常:程序运行的时候报错了,我们程序出现了异常

    程序异常的后果:程序会在异常的地方直接结束,不会往后继续执行

  2. 异常捕获

    • 目的:当程序出现异常的时候,程序不崩溃还可以接着执行后面的代码

    • 什么时候需要捕获:明明知道某个地方会出现异常,但是代码没有问题(用户的不当操作),这个时候就可以使用异常捕获

    • 语法1: - 捕获所有类型的异常
      try:
      代码段1
      except:
      代码段2
      finally:
      代码段3

      • 说明:
        try、except - 关键字;固定写法
        代码段1 - 需要捕获异常的代码
        代码段2 - 捕获到异常后会执行的代码
      • 执行过程:先执行try后面的代码段1,如果没有异常,直接执行后面的其他代码(不会执行代码段2);
        如果代码1在执行的时候出现异常,程序不崩溃,直接(马上)执行except后面的代码段2
    • 语法2: - 捕获指定类型的异常
      try:
      代码段1
      except 异常类型:
      代码段2
      finally:
      代码段3

    • 语法3: - 同时捕获多种异常,针对不同异常进行相同的处理
      try:
      代码段1
      except (异常类型1, 异常类型2,…):
      代码段2
      finally:
      代码段3

    • 语法4: - 同时捕获多种异常,针对不同异常进行不同的处理
      try:
      代码段1
      except 异常类型1:
      代码段11
      except 异常类型2:
      代码段22

      finally:
      代码段3

    练习:打开指定的文本文件,如果文件存在就读文件中的内容,如果不存在就创建这个文件。
    try:with open('./aaa.txt', 'r', encoding='utf-8') as f:print(f.read())
    except:print('改文件不存在!')with open('./aaa.txt', 'w', encoding='utf-8') as f:pass
    
  3. 关键字finally

    • finally的存在不影响原来异常捕获的执行
    • finally后面的代码是不管try里面的代码发生了什么情况都会执行。(就算代码段1出现异常没有被捕获到finally后面的代码也会执行)

正则匹配符号

  1. 什么是正则表达式

    • 正则表达式是让复杂的字符串处理变得更加简单的工具
  2. 正则语法

    • fullmatch(正则表达式, 字符串) - 判断指定的字符串是否满足正则表达式描述的规则,如果不满足返回None
    • python中正则表达式是写到单引号或者双引号里面,例如:‘正则表达式’;js中正则表达式是放在两个/之间的,例如:/正则表达式/
  3. 正则匹配类符号

    1. 普通字符

      • 普通字符指的是正则表达式中除了特殊符号以外的符号都是普通字符
      • 普通字符在正则中表示这个符号本身
      # 规则:一个字符串有3个字符,第一个字符是a,第二个字符是b,第三个字符是c
      re_str = 'abc'
      result = fullmatch(re_str, 'abc')
      print(result)
      
    2. . - 匹配一个任意字符

    # 规则:一个字符串有3个字符,第一个字符是a,最后一个字符是c,中间是任意字符
    re_str = 'a.c'
    result = fullmatch(re_str, 'a胡c')
    print(result)# 练习:写一个正则能够匹配一个字符串的开头是1结尾是2,中间两个任意字符
    result = fullmatch('1..2', '1就=2')
    print(result)
    
    1. \d - 匹配一个任意数字

      # 规则:一个字符有4个字符,第一个字符是a,最后一个字符是b,中间是两个任意数字
      re_str = r'a\d\db'
      result = fullmatch(re_str, 'a49b')
      print(result)
      
    2. \s - 匹配一个任意空白字符

      • 空白字符:空格、\n、\t
      # 规则:一个字符串开头是两个数字,中间一个空白,然后再两个数字
      re_str = r'\d\d\s\d\d'
      result = fullmatch(re_str, '23 89')
      print(result)
      
    3. \D - 匹配任意一个非数字字符

      # 规则:一个字符串有4个字符,第一个字符不是数字,后面是abc
      re_str = r'\Dabc'
      result = fullmatch(re_str, '=abc')
      print(result)
      
    4. \S - 匹配任意一个非空白字符

      # 规则:一个字符串有5个字符,第一个字符是数字,第二个字符不是空白字符,后面是abc
      re_str = r'\d\Sabc'
      result = fullmatch(re_str, '8=abc')
      print(result)
      
    5. [字符集] - 匹配字符集中任意一个字符

      """
      [abc你]  -  能匹配'a'或者'b'或者'c'或者'你'
      [a\dbc]  -  能匹配'a'或者'b'或者'c'或者任意一个数字
      [1-9]   -   匹配1到9中任意一个字符
      [a-z]   -   匹配任意一个小写字母
      [A-Z\d]    -   匹配任意一个大写字母或者任意一个数字
      [a-zA-Z]  - 匹配任意一个字母
      [\u4e00-\u9fa5]     -   匹配任意一个中文
      [abc-]   -    能匹配'a'或者'b'或者'c'或者'-'
      注意:
      1. 一个[]只能匹配到一个字符
      2. -如果在两个字符之间表示范围,这个-前面的字符的编码值必须小于-后面的字符的编码值
      3. -如果不在两个字符之间,表示-本身
      """
      re_str = r'1[a=bc0]2'
      result = fullmatch(re_str, '1=2')
      print(result)re_str = r'1[\dxy胡]2'
      result = fullmatch(re_str, '192')
      print(result)# re_str = r'a[2345678]b'
      re_str = r'a[2-8]b'
      result = fullmatch(re_str, 'a5b')
      print(result)# 练习:写一个正则表达式匹配一个字符:123前面是一个数字、字母或者下划线
      re_str = r'[\da-zA-Z_]123'
      result = fullmatch(re_str, '_123')
      print(result)
      
    6. [^字符集] — 匹配不在字符集中的任意一个字符

      """
      [^abc]  - 匹配一个除了'a'、'b'、'c'以外的任意字符
      [^a-zA-Z]   -   匹配任意一个非字母字符
      """
      re_str = r'[^abc]123'
      result = fullmatch(re_str, 'A123')
      print(result)
      

正则检测类符号

匹配类符号(一个符号必须匹配一个对应的字符):普通字符、.、\d、\s、\D、\S、[字符集]、[^字符集]

检测类符号:检测符号所在的位置是否符号要求

注意:检测类的符号不影响匹配

# 1.\b -   检测是否是单词边界
# 单词边界:所有可以划分出两个不同单词的符号,包括空白、标点符号、字符串开头或者结尾
re_str = r'abc\b,123\b'
result = fullmatch(re_str, 'abc,123')
print(result)re_str = r'a\b.b'
result = fullmatch(re_str, 'a,b')
print(result)# 2.\B  -   检测是否是非单词边界
re_str = r'a.\Bb'
result = fullmatch(re_str, 'apb')
print(result)# 3.^   -   检测是否是字符串开头
re_str = r'^\d\d\d'
result = fullmatch(re_str, '627')
print(result)re_str = r'^\d\d\d'
result = search(re_str, 'sjhs是276鲨大富豪shj345')
print(result)   # None# 4.$   -   检测是否是字符串结尾
re_str = r'\d\d\d'
result = search(re_str, 'sjhs是276鲨大富豪shj345')
print(result)   # '276're_str = r'\d\d\d$'
result = search(re_str, 'sjhs是276鲨大富豪shj345')
print(result)   # '345'

匹配次数

# 1. *  -   匹配0次或多次
# a*  - 匹配任意多个字符a
# \d*   -   匹配任意多个\d(任意多个任意数字字符)
re_str = r'1a*2'
result = fullmatch(re_str, '1aaa2')
print(result)re_str = r'a\d*b'
result = fullmatch(re_str, 'a2334525398b')
print(result)re_str = r'1[abc]*2'
result = fullmatch(re_str, '1abac2')
print(result)# 2. +  -   匹配1次或者多次
re_str = r'1a+2'
result = fullmatch(re_str, '1aaaaa2')
print(result)# 3. ?  -   匹配0次或1次
re_str = r'-?\d\d'
result = fullmatch(re_str, '-23')
print(result)# 练习:写一个正则表达式能够匹配任意整数字符串,包括:6723、+23、-2891
re_str = r'[-+]?\d+'
result = fullmatch(re_str, '-23')
print(result)# 4.{}
"""
{N}   -    匹配N次
{M,N}   -   匹配M到N次,{0,1} == ?
{M,}    -   匹配至少M次, {0,} == *  {1,} == +
{,N}    -   匹配最多N次
"""
re_str = r'\d{3}'
result = fullmatch(re_str, '780')
print(result)re_str = r'a\d{2,5}b'
result = fullmatch(re_str, 'a7042b')
print(result)

2021.2.22学习总结相关推荐

  1. 2021.08.22学习内容torch.cat()和torch.stack()函数

    torch.cat()函数 将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. def cat(tensors: List[torch.Tensor], d ...

  2. JAVA基础学习预科部分 (Markdown + dox)2021/2/22持续更新中

    javaSE从 2021/02/22开始,预计到2021/02/28,原本预计的算法题解先鸽一下. -博客Blog的重要性 & Markdown语法 基础markdown语法 标题, 直接使用 ...

  3. 2021年个人学习生活总结和2022年学习生活计划

    2021年,对于我来说是不平凡的一年.我觉得自己2021年的关键词是:责任.坚持.成长.下面分别对自己2021年的学习和生活进行总结,并对2022年的学习和生活进行计划,让自己能朝着预设的目标努力,获 ...

  4. 2021.1.22平安科技面经--算法工程师实习生

    2021.1.22平安科技面经–算法工程师实习生 岗位:算法工程师实习生 自我介绍(这个地方我自己需要去提炼一下) 机器学习,人工智能了解得多吗? 那你是怎么自学机器学习,深度学习呢? 那什么是过拟合 ...

  5. cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Heterogeneous Graphs and Relational GCN (RGCN) ...

  6. cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...

  7. 2021.5.22 2022蓝桥杯练习赛3

    2021.5.22 2022蓝桥杯练习赛3 闲话: 1.就难度而言,本次练习赛题目整体比较简单,要是认真补了前两场的题,应该可以轻松做完4到5题. 2.就体验而言,这场练习赛数据普遍较弱,基本上瞎搞都 ...

  8. cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 0. Python包导入 1. NetworkX数据获取.可视化 2. 探索NetworkX数据的 ...

  9. SketchUp Pro 2021基础入门学习视频教程

    SketchUp Pro 2021基础入门学习视频教程 1280X720 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 流派:电子学习|语言:英语+中文字幕( ...

最新文章

  1. Eclipse解决Ctrl+c很卡的方法
  2. JZOJ 5050. 【GDOI2017模拟一试4.11】颜色树
  3. java简单编译器源代码_25行代码实现一个简单的编译器
  4. java处理unicode_C# JavaScript Java 与 中文 unicode 处理
  5. 【程序设计】浅析编程语言的区间为何常是左闭右开
  6. 前端开发学习Day4
  7. ShopNC【B2B2C】多用户电商平台系统,带WAP,微商城,圈子,门户
  8. Python入门 程序的套路
  9. ubuntu16.04 SVN的安装与使用
  10. 三月提示:提防挂马网站 关注账号安全
  11. textarea统计剩余字数(动态提示)
  12. C语言函数的声明、定义、调用
  13. VoLTE call对应QXDM分析
  14. 内容太干准备好水:项目进度管理S曲线制作方法新探
  15. 《未来世界的幸存者》:你会是未来世界的幸存者吗?
  16. 类继承和接口继承的差别
  17. loj507(dp)
  18. 通过FTP从服务器上下载文件
  19. 互联网电影购票网站调查思考
  20. 香港云服务器提升性能,香港云服务器提升性能

热门文章

  1. 华为matebook14摄像头无法启动问题
  2. java jisuan da xie zi mu ge shu_java获取中文拼音
  3. Ubuntu 16.04下通过系统软件商店安装flameshot后无法启动问题解决方法
  4. 扎克伯格“致敬”微信,但Facebook Pay能像微信支付一样成功吗?
  5. C - C语言实验——求两个整数之中较大者
  6. linux下录音识别成文字软件,如何将录音转换成文字?录音转文字简单方法介绍...
  7. C#叠加合并半透明图像的两种实现
  8. 广色域图片Android,广色域手机很厉害?其实安卓手机屏幕的色彩问题一
  9. HuaWei ❀ IP源防护概述
  10. 鼠标能动但是无法点击屏幕(间歇性)