Python学习笔记_Day08

wx60c1f94c784b4 2021-07-20 04:42:29
python开发 python教程


OOP:面向对象的编程

  • 在python中,一切皆对象
  • 对象有属性:数据属性(变量),函数属性(方法)
  • OOP编程时,需要把某些事物找出它们的共性,抽象成一个类class
  • 在具体应用时,再根据类创建实例
  • 类名建议使用驼峰的形式,如MyClass
class GameRole:
def __init__(self, nm, wp):
self.name = nm
self.weapon = wp
if __name__ == '__main__':
lb = GameRole('吕布', '方天画戟') # 创建名为lb的实例
print(lb.name, lb.weapon)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • __init__是类中的特殊方法,称作构造器方法,它在创建实例的时候自动调用
  • 方法的第一个参数self,表示实例,不是关键字,可以是任意的合法名称
  • 方法中的变量名,就是函数的局部变量,只在该方法中可用
  • 绑定到实例上的变量,是实例的属性,可以在类中任意位置应用

组合

  • 两个类明显不同
  • 一个类是另一个类的组件

继承

  • 两个类有很多相同
  • 一个类是另一个类的子类
  • 子类继承父类的属性
  • 父子拥有同名方法,子类优先级高
  • 子类可以有多个父类,继承所有父类的方法
  • 执行方法时,查找的顺序是自下向上,自左向右

特殊方法

类中有一些以双下划线开头和结尾的特殊方法,也称作magic魔法方法。

re模块

https://jex.im/regulex

# 将mac地址加上冒号
192.168.1.1 000C29123456
192.168.1.2 525400A31B2C
192.168.1.3 0002231A08D3
# 思路:找到mac地址、每两个数分一组、组之间加冒号
:%s/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)$/\1:\2:\3:\4:\5:\6/

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

re模块常用方法

>>> import re
# match匹配到,返回匹配对象,否则返回None
>>> re.match('f..', 'food')
<_sre.SRE_Match object; span=(0, 3), match='foo'>
>>> print(re.match('f..', 'seafood'))
None
# search在字符串中匹配
>>> re.search('f..', 'food')
<_sre.SRE_Match object; span=(0, 3), match='foo'>
>>> re.search('f..', 'seafood')
<_sre.SRE_Match object; span=(3, 6), match='foo'>
>>> m = re.search('f..', 'seafood')
>>> m.group() # 匹配对象的group方法返回匹配到的字符串
'foo'
# findall可以匹配到所有的内容
>>> re.findall('f..', 'seafood is food')
['foo', 'foo']
# finditer返回匹配对象的迭代器
>>> list(re.finditer('f..', 'seafood is food'))
[<_sre.SRE_Match object; span=(3, 6), match='foo'>, <_sre.SRE_Match object; span=(11, 14), match='foo'>]
>>> for m in re.finditer('f..', 'seafood is food'):
... m.group()
...
'foo'
'foo'
# split用于切割
# 以.或-作为分隔符
>>> re.split('\.|-', 'how-are-you.tar.gz')
['how', 'are', 'you', 'tar', 'gz']
# 替换
# 将X替换为python
>>> re.sub('X', 'python', 'X is good. I like X.')
'python is good. I like python.'
# 当有大量匹配时,提前把模式进行编译,可以得到更好的效率
>>> patt = re.compile('f..')
>>> patt.search('seafood')
<_sre.SRE_Match object; span=(3, 6), match='foo'>
>>> m = patt.search('seafood')
>>> m.group()
'foo'
>>> patt.findall('seafood is food')
['foo', 'foo']

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

↓↓↓↓↓↓

最近刚申请了个微信公众号,上面也会分享一些运维知识,大家点点发财手关注一波,感谢大家。 【原创公众号】:非著名运维 【福利】:公众号回复 “资料” 送运维自学资料大礼包哦!
在这里插入图片描述

如果你觉得这篇文章还不错,就请动动你的发财手为本文留个言点个在看,或者转发一下吧,因为这将是我持续输出更多优质文章的最强动力

版权声明
本文为[wx60c1f94c784b4]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15266039/2896033

  1. python —pandas库常用函数
  2. Python应用matplotlib绘图简介
  3. Python matplotlib高级绘图详解
  4. 入门训练 Fibonacci数列-python实现
  5. Python -二维数组定义
  6. python二进制相加
  7. Python文本处理:解析json格式的数据
  8. 查看python安装路径
  9. Python编程之计算生态
  10. Python-turtle标准库知识小结(python绘图工具)
  11. Python-time标准库知识小结
  12. Python-random标准库知识小结
  13. python安装第三方库的三种方法
  14. python程序的控制结构
  15. Python程序的函数和代码复用
  16. python之组合数据类型
  17. python【力扣LeetCode算法题库】300 最长上升子序列(动态规划)
  18. python【力扣LeetCode算法题库】695- 岛屿的最大面积(深搜)
  19. python【力扣LeetCode算法题库】面试题 01.06-字符串压缩
  20. python【力扣LeetCode算法题库】1160-拼写单词
  21. python【力扣LeetCode算法题库】836- 矩形重叠
  22. python【力扣LeetCode算法题库】409-最长回文串(数学 计数器)
  23. python【力扣LeetCode算法题库】面试题40- 最小的k个数
  24. python【力扣LeetCode算法题库】945- 使数组唯一的最小增量
  25. python【力扣LeetCode算法题库】365- 水壶问题(裴蜀等式)
  26. python【力扣LeetCode算法题库】876- 链表的中间结点
  27. python【力扣LeetCode算法题库】面试题 17.16- 按摩师(DP)
  28. python【力扣LeetCode算法题库】892-三维形体的表面积
  29. python【力扣LeetCode算法题库】999-车的可用捕获量(DFS)
  30. python【力扣LeetCode算法题库】914. 卡牌分组(reduce & collections.Counter)
  31. python【力扣LeetCode算法题库】820- 单词的压缩编码
  32. python【力扣LeetCode算法题库】1162- 地图分析(BFS)
  33. python【力扣LeetCode算法题库】面试题62- 圆圈中最后剩下的数字(约瑟夫环)
  34. python【力扣LeetCode算法题库】912- 排序数组
  35. python【力扣LeetCode算法题库】1111- 有效括号的嵌套深度
  36. python【力扣LeetCode算法题库】289- 生命游戏
  37. python【力扣LeetCode算法题库】12- 整数转罗马数字(打表 模拟)
  38. python【数据结构与算法】内置函数enumerate(枚举) 函数(看不懂你来打我)
  39. python【力扣LeetCode算法题库】13- 罗马数字转整数
  40. python【数据结构与算法】内置函数 zip() 函数(看不懂你来打我)
  41. python【力扣LeetCode算法题库】14-最长公共前缀(列表解压)
  42. python【蓝桥杯vip练习题库】ADV-281特等奖学金
  43. python【蓝桥杯vip练习题库】ADV-69质因数(数论)
  44. python爬不同图片分别保存在不同文件夹中
  45. python打印a-z
  46. python以16进制打印输出
  47. 每天好心情——Python画一棵樱花树
  48. 在终端输入命令打开mac自带的python工具IDLE
  49. Python3的安装(Windows)
  50. Python第一个爬虫项目
  51. Python模拟日志生成
  52. 【邵奈一】Python爬虫专栏(一)之Python爬虫热身
  53. 用 Python 画一棵圣诞树
  54. 你一定想不到,实现一个Python+Selenium的自动化测试框架就这么简单!
  55. 一文快速教你搭建Python+Selenium环境
  56. 一看就会:Python+Appium实现自动化测试
  57. 【邵奈一】Python爬虫专栏(三)之自动登录
  58. Python core developer: the retirement of the father of Python has no impact
  59. Python3 or Python2? Examples explain the differences between the two
  60. Analysis of Linux DHCP server IP allocation Python script