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

Python学习笔记:正则表达式、逻辑运算符、lamda、二叉树遍历规则、类的判断

1.正则表达式如何写?

序号实例说明
1.匹配任何字符(除换行符以外)
2\d等效于[0-9],匹配数字
3\D等效于[^0-9],匹配非数字
4\s等效于[\t\r\n\f],匹配空格字符
5\S等效于[^\t\r\n\f],匹配非空格字符
6\w等效于[A-Za-z0-9],匹配单字字符
7\W等效于[^A-Za-z0-9],匹配非单字字符
8[ab]cdef匹配acdef或bcdef
9abc[de]匹配abcd或abce
10[0-9]\[a-z]匹配数字0-9\小写字母a-z
11[^0-9]\[^a-z]匹配非数字/非小写字母
12abc?匹配ab或abc
13abc*匹配ab/abc/abcc……0个以上的c
14abc+ab+1个以上c
15\d{3}完全匹配3位数
16\d{3,5}匹配3位、4位、5位数
17\d{3,}匹配3位以上的数

边界匹配:不消耗匹配字符串中的字符

序号实例说明
1^匹配开始位置,多行模式匹配每一行的开始,如^abc,则在开始位置匹配abc
2$匹配结束位置,如.*sh$,在结束位置匹配agfiasfush
3\ber\b可以匹配never中的er,但是不能匹配verb中的er
4\Ber\B可以匹配verb中的er,但是不能匹配never中的er
5\A匹配开始位置,忽略多行模式
6\Z匹配结束位置,忽略多行模式

贪婪匹配与惰性匹配:以<div>hello world</div>为例

序号实例说明
1<.>贪婪匹配模式,得到的是<div>hello world</div>
2<.?>惰性匹配模式,得到的是<div>或者</div>

 2.常用正则表达式实例

序号实例说明
用户名^[a-z0-9_-]{3,16}$只能包含小写字母、数字、下划线、-、至少3位至多16位
密码^[a-z0-9_-]{3,18}$只能包含小写字母、数字、下划线、-、至少3位至多18位
十六进制值^[0-9A-F]{6}|[0-9A-F]{3}$以#开头,0-F,一共6位或者3位
电子邮箱^([0-9a-zA-Z_-.])@([0-9a-z]).([a-z.]{2,6})$

3.Python的逻辑运算符

3.1 not

not True:False

3.2 and

True and False : False

and是一种短路操作符,从左到右解析,确认结果即停止

0 and 18:0

15 and 18:18

4 and 3: 3

3.3 or

    1. True or True : True
    2. True or False : True
    3. False or True : True
    4. False or False : False

 同样or也是一种短路操作符,确认结果即停止

4 or 3 : 4

3 or 0 : 3

0 or 3 : 3

4.lamda表达式

lambda表达式是一种匿名函数,表达式可以作为参数传递给其他函数或直接被调用。

add = lambda x, y: x + y
print(add(5, 3))

 5.二叉树的遍历

  • 前序遍历:先输出父节点,再遍历左子树,然后遍历右子树:ABDEGCF
  • 中序遍历:先遍历左子树,再输出父节点,然后遍历右子树:DBGEACF
  • 后续遍历:先遍历左子树,再遍历右子树,最后输出父节点:DGEBFCA

6.Type()和isinstance()的区别

isinstance(object, classinfo)传入两个参数,并判断object是否属于classinfo对应的类

type(object)一般只传入一个参数,输出object对应的类<class'__main__.A'>

type(object) == A 实现与isinstance类似的功能但是区别在于:

        1.type只接收一个参数,不但可以判断变量是否属于某个类型,而且可以得到未知的参数变量所属的类型;而isinstance只能判断是否属于某个已知类型,不能直接得到变量未知的所属的类型

        2.isinstance可以判断子类实例对象是属于父类的;而type会判断子类实例对象和父类类型不一样

http://www.lryc.cn/news/142666.html

相关文章:

  • 【滑动窗口】leetcode1004:最大连续1的个数
  • 力扣:73. 矩阵置零(Python3)
  • VB|基础语法 变量定义 函数定义 循环语句 IF判断语句等
  • Github 博客搭建
  • 模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
  • 创建型模式-建造者模式
  • Rust常用加密算法
  • [管理与领导-55]:IT基层管理者 - 扩展技能 - 1 - 时间管理 -2- 自律与自身作则,管理者管好自己时间的五步法
  • 电子商务员考试题库及答案(中级)--判断题
  • (WAF)Web应用程序防火墙介绍
  • SpringMVC拦截器常见应用场景
  • 爬虫:绕过5秒盾Cloudflare和DDoS-GUARD
  • 数据仓库环境下的超市进销存系统结构
  • leetcode:2011. 执行操作后的变量值(python3解法)
  • ubuntu下mysql
  • 大模型从入门到应用——LangChain:链(Chains)-[链与索引:检索式问答]
  • 【LeetCode-中等题】142. 环形链表 II
  • Android TV开发之VerticalGridView
  • SpringBoot+Vue项目添加腾讯云人脸识别
  • 什么是IPv4?什么又是IPv6?
  • 飞腾FT-2000/4、D2000 log报错指导(3)
  • 基于安卓的考研助手系统app 微信小程序
  • Leetcode:238. 除自身以外数组的乘积【题解超详细】
  • 基于单片机的智能数字电子秤proteus仿真设计
  • 大数据(二)大数据行业相关统计数据
  • Ruoyi安装部署(linux环境、前后端不分离版本)
  • PHP聚合支付网站源码/对接十多个支付接口 第三方/第四方支付/系统源码
  • 容器化微服务:用Kubernetes实现弹性部署
  • DevOps系列文章 之 Python基础
  • Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2) A ~ D