Python知识点回顾二
2021/6/19 17:30:54
本文主要是介绍Python知识点回顾二,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python遗忘知识点第二节
- Python基础篇六至十节
- 六、文件
- 1.文件的打开关闭
- 2.文件的读取
- 3.文件的目录操作
- 4.路径
- 七、面向对象初级
- 1.类的基本
- 2.类的继承与重用
- 八、面向对象高级
- 1.内置函数
- 2.魔法方法
- 3.协议
- 九、生成装饰器和异常
- 1.生成器
- 2.装饰器
- 3.异常
- 十、正则
- 1.元字符
- 2.通配符
- 3.转义符
- 4.次数匹配
- 5.贪婪匹配与非贪婪匹配
- 6.集合
- 7.分组匹配
- 8.re模块
Python基础篇六至十节
本文章是关于六至十节的易忘的内容,相较于一至五节内容偏多。
Python基础篇一至五节
六、文件
1.文件的打开关闭
file_one = open('a','b') #a:文件名称,b:文件的打开模式
常见的文件打开模式有:
- r:只读
- w:只写,但在该模式下每次打开文件,都会清空之前的内容!!
- a:追加
- b:以二进制的形式打开
- +:更新(读和写)
file_one.write('this is python') #一次只能写一个。 flie_one.writelines('hello,python\n','I heart you\n','day day up') #一次写入多行内容 file_one.flush() #保存内容到文件 file_one.close() #关闭文件也会自动修改到文件中去
注:这只是写入到内存里去,并不是文件中,关闭文件时一定要记得保存!!
2.文件的读取
file_one = open('text.txt','r+')#首先要打开文件 file_one.read() #读取文件 file_one.readline() #读取文件中的一行 file_one.readlines() #读取文件中的多行
文件的读取的便捷形式
每次打开文件都需要关闭,但是使用with可以自动关闭文件
3.文件的目录操作
import os os.getcwd() #获取当前路径 os.chdir('a') #切换路径,a:表示的是路径名 os.listdir(path='.') #查看子目录 os.mkdir('file') #创建以file为名的文件夹 os.rename('file','new') #更改文件名
其他方法如下
4.路径
from datatime import datatime as dt #文件导入 if __name__=='__main__': #对于测试核心代码有很大帮助
七、面向对象初级
1.类的基本
class Person(): #类的定义 def __init__(self,name,age,sex='0'): self.name = name self.age = age self.sex = sex def play(self): print(f'{self.name}正在看电视' bd = Pesron('一个',18) #实例化 bd.name #一个 bd.play() #一个正在看电视
- self是实例自己,在该例子中也就是bd
- __init__是初始化函数,实例初始化时自动调用
- 通过.来进行属性和方法的操作
2.类的继承与重用
- 多重继承会有顺序
- 类继承后,若想调用父类的方法有两种方式
Preson.play(self) #方法一 super().play() #方法二
八、面向对象高级
1.内置函数
ks = HunXue('空山',18) hasattr(ks,'name') #判断属性是否存在 getattr(ks,'name') #有则得到属性值,无责报错 setattr(ks,'name','空空') #设置属性值 delattr(ks,'name') #删除属性值 hasattr(ks,'name')
True '空山' '空空' False
属性调用过程
2.魔法方法
这个魔法方法和下面的协议对于初学者有一点难理解。
1. 单例模式
#单例模式,只有一个实例存在,不会有多个实例。 class Earth(): def __new__(cls): if not hasattr(cls,'_instance'): cls._instance=super().__new__(cls) return cls._instance def __init__(slef): self.name = 'earth'
def __str__(self): #用来改变print打印时的样子 def __repr__(self): #用来改变直接打印时的样子
3.协议
1.序列协议
class IndexTuple: def __init__(self,*args): self.values = tuple([x for x in args]) self.index = tuple(enumerate(self.values)) def __len__(self): return len(self.values) def __getitem__(self,key): return self.index[key] def __repr__(self): return str(self.values) my = IndexTuple(1,'a','b',3,5)
len(my) #5 my[1] #'a'
2.迭代器协议
class Number: def __init__(self,end=10): self.start = 0 self.end = end def __iter__(self): return self def __next__(self): self.start += 1 if self.start >= self.end: raise StopIteration return self.start nu = Number()
next(nu) next(nu)
1 2
注:只要实现了__iter__和__next__方法,就是迭代器。
3.上下文协议
import time class RunTime: def __enter__(self): self.start_time = time.time() return self.starttime def __exit__(self,a,b,c): self.end_time = time.time() self.run_time = self.endtime-self.start_time print(f'Time consuming {self.run_time}'
九、生成装饰器和异常
1.生成器
def fibona(end): n,a,b=0,0,1 while n<end: a,b = b,a+b yield b n += 1
a = fibona(10) next(a) 1
- 利用yield可以让一个函数变成一个迭代器
- yield拥有与return一样的功能,可以返回值
- 但会暂停函数的执行,直到下一次next()执行
2.装饰器
在不改变函数的前提下,给函数增加功能。
#语法格式 def 装饰器函数名(参数): def 功能函数名(): 功能 return 功能函数名 #使用装饰器 在定义的函数前加@装饰器函数名
def variables(func): def f(*args,**kwargs): print(args,**kwargs) values = func(*args,**kwargs) return values return f @variables def f1(end): return end+1
装饰器执行步骤
- 将f1这个函数作为参数传给func,f1=func
- 执行f()函数,end传入到*args里面
- 如果想实现函数本身的功能,则在f中加入func()
三种内置装饰器
yige = Person() yige.play #property装饰器 yige.eat() #classmethod装饰器 yige.sleep() #staticmethod装饰器
一个正在玩游戏,哈哈哈~~~ <class '__main__.Person'>需要学习,emm~~~ 人都需要睡觉
3.异常
语法规则
try: pass #可能出现异常的代码 except Exception: raise Exception #抛出异常或者返回异常 else: pass #没有报错就会执行 finally: pass #以上执行完就会执行这个
注:
- try后必须跟上except
- except只有在函数中才能使用return
- finally不管是否发生异常都会执行
- raise主动抛出异常
assert:断言,与if类似,只是判断为False时,会报错。
十、正则
1.元字符
2.通配符
import re phone = input('请输入手机号') re = findall(r'^13\d{9}$',phone)
-
^表示的是开头,$表示的是结尾,r取消字符串转义
-
re.findall()获取所有符合规则的内容,并返回到列表中去。
-
.可以匹配任意字符,但在没有规定匹配次数的前提下,只能匹配一个。
-
正则默认是一行一行匹配的
-
加入参数re.S后就会所有一起匹配
3.转义符
4.次数匹配
1.第一个为最小次数,第二个为最大次数 2.一个默认为最大次数 3.从1次起 4.0次到2次
1.0次到多次 2.1次到多次 3.0次到1次
5.贪婪匹配与非贪婪匹配
6.集合
注:
- 匹配r或者e
- 匹配0-9之间的任意一个数字或者a-z之间的任意一个字母
- 不匹配a-z里面的任何一个
- 匹配一个字的中文
- 匹配两个字的中文
7.分组匹配
8.re模块
这篇关于Python知识点回顾二的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程