Python笔记-doc

Python笔记
第一部分Python核心编程
数值类型(整数,浮点,布尔,复数)
序列类型(字符串,列表,元组)
散列类型(字典,集合)
不可变类型:元组 数值
字符串方法:
增:字符串拼接
1.str1+str2+str3 2.””.join([str1,str2,str3])
3.’%s %s %s’ %(str1,str2,str3) 4.’{} {} {}’.format(str1,str2,str3)
删:x.replace(m,n,x) m:准备替换的内容 n:替换的内容 x:替换的个数
查:x.index(m) m:索引的内容
x.find(m) m:索引的内容
x.count(m) m:计数的内容
x.isdigit() 是否是数字
x.isalpha() 是否是字母
x.isupper() 是否是大写
x.islower() 是否是小写
x.startswith(m) 是否以m开头
x.endswith() 是否以m结尾
改:x.upper() 转化为大写
x.lower() 转化为小写
x.strip(lstrip,rstrip) 去掉空白
x.title() 标题化
x.capitalize() 第一个字母大写
x.split(m,x) 以m为界分割 分割x次

列表方法:
增:li.append(m) m:添加的内容
li.insert(x,m) x:元素下标位置 m:插入的内容
li.extend(list) list:为另一个列表
删:li.pop(x) x:删除一个元素并返回该元素的值 若无参数则从最后开始删除
li.remove(m) m:需要删除的内容
li.clear() 清空列表
查:li.index(m) m:索引的内容
li.count(m) m:计数的内容
改:list[n]=x
其他:copy() 浅复制
import copy 深复制 适用于两层列表
list1=copy.deepcopy(list2)
sort(m,reverse=True/False) m:列表 reverse=True永久倒排序 reverse=永久正排序
sorted(m,reverse=True/False) m:列表 reverse=True临时倒排序 reverse=临时正排序
reverse()倒排序

元组方法:
查:t.index(m) m:索引的内容
t.count(m) m:计数的内容
集合方法:
交集& 并集| 差集-
增:add(m) m:向集合里面添加的内容
删:pop() 随机删除集合内容
remove()指定删除集合内容
查 a.isdisjoint(b) a与b是否存在交集
a.issubset(b) a是b的子集吗
a.issuperset(b) a是b的父集吗
改:update(m) 向集合里面添加元素m可以为字符串 列表 元组 集合 字典

字典方法:
两种声明方式:1.d={‘name’:’jack’} 2.d=dic(name=’jack’)
增:copy() 浅复制
d=dict.fromkeys (m,n) m:键的来源可迭代对象 n:设置值的默认值
setdefault(m,n)查询有则返回无则添加m:键 n:值
删:clear() 清空字典
pop(m) m:键 删除以m为键的字典
popitem()删除最后一个字典
改:update(m) m:添加的字典
查:get(m) m:键 返回m键对应的值
keys() 获得键的列表
values() 获得值的列表
items() 同时获得键与值的元组 再通过遍历获得键与值
判断类型:type() isinstance(变量,类型)
字典的键值和元组 集合 列表值得调换
运算符及其优先级

流程控制
If-else
If-elif-else
While
While-else
For x in n(列表,字典,range())
函数
1.必备参数 2.默认参数(默认参数只能排在最后) 3.不定长参数(只能排在必备参数的后面)
2.*args 可以传入字符串,列表,元组,集合 **args可以传入字典,*arg可以解包字符串,列表,集合,元组,但需要有形参来接值。 **arg可以解包字典,但形参要和键值一样。
内置函数:常见函数:
len 求长度
min 求最小值
max 求最大值
sorted 排序
reversed 反向
sum 求和
进制转换函数:
bin 转换为二进制
oct 转换为八进制
hex 转换为十六进制
ord 字符转ASCII码
chr ASCII码转字符
内置对象查看:dir(builtins)
Python中高级内置函数
enumerate 转化为元组标号
eval 取出字符串中的内容 执行”2+8” 只能运行一行字符串代码
将字符串str当成有效的表达式来求指并返回计算结果
exec
执行字符串编译过的字符串 可以运行多行字符串代码
filter 过滤器
map
对于参数iterable中的每个元素都应用fuction函数,并将结果作为列表返回
zip 将对象逐一配对


1.实例中可以引用类属性,类中不可以引用实例属性。
2.每个实例占独立的内存空间,实例间不可以互相引用属性。
3.类的实例化,初始化
4.类的析构(销毁无用变量)
5.继承 重写
6.多继承 重写
在类中
super()可以调用父类里面的方法
self.方法()可以调用父类里面的方法
类中查询相关信息
1、class 查看类名
格式: 实例.class
2、dict 查看全部属性,返回属性和属性值键值对形式
格式:实例.dict
3、doc 查看对象文档,即类中(用三个引号引起来的部分)
格式:类名.dict
4、bases 查看父类
格式:类名.base
5.mro 查看多继承的情况下,子类调用父类方法时,搜索顺序
格式:子类名.mro 实例.class.mro
魔术方法:
str repr call init add

定制属性访问
hasattr(m,’n’) m:实例 n:类里面的属性 确定属性是否存在
getattr(m,’n’) m:实例 n:类里面的属性 得到指定类属性的值
setattr(m,’n’,x) m:实例 n:类里面的属性 x:设置属性的值 有则改无则添加
delattr(m,’n’) m:实例 n:类里面的属性 删除一个类属性
描述符
class Myattr():
def get(self,instance,owner):
print(“this is get”)
def set(self,instance,value):
print(“this is set”)
def delete(self,instance):
print(“this is delete”)
class Myclass():
attr=Myattr()
a=Myclass()
a.attr #访问属性来激活__get__方法
a.attr=1 #赋值来激活__set__方法
del a.attr #删除来激活 __delete__方法

装饰器
def modify(func):
def wrapper():
result=func()
return result+‘添加的内容’
return wrapper
@modify #第一种方式
def hi():
return ‘hello world !’
#hi=modify(hi) #第二种方式
print(hi())
内置装饰器
class Rectangle:

def __init__(self, length, width):
    self.length = length
    self.width = width

def area(self):
    areas = self.length * self.width
    return areas

@property  	# 就像访问属性一样和普通访问少了一个()
def area(self):
    return self.width * self.length

@staticmethod  	# 静态方法  和class类断开联系 既可以先实例化再调用也可以直接调用
def func():  	
    print(‘staticmethod func’)

@classmethod  	# 类方法  接调用调用函数Rectangle.func()
def show(cls):  	# cls代表类本身 
    print(cls)
    print('show fun')

异常
try:
print(a) 尝试运行代码
except Exception as e: 将错误类型储存在e中
print(“error!”)
print(e)
raise Myerror 抛出自定义异常
else:
print(“right!”) 不出异常才执行
finally:
print(“display all the time”) 无论是否异常都会执行

列表解析
l1=[i for i in range(0,11) if i%2==0]
迭代器
iter()
next()
可迭代对象和迭代器的区别:迭代器中有iter和next两种方法而可迭代对象只有iter方法,所以可迭代对象只能借助循环来输出迭代对象,而迭代器可以用next方法直接输出对象。

生成器
scq=(i for i in range(0,11))
生成器和迭代器的区别:生成器消耗的内存比迭代器要少,但生成器生成的对象需要借助for遍历来输出。
文件操作
fp=open(地址,模式,encoding=’utf-8’,errors=’none’/’ignore’) 打开文件
fp.close() 关闭文件
with open() as f1,open() as f2: 上下文管理(可以自动关闭文件)
fp.seek(m) 移动文件指针 当前位置向后移动m个字节
fp.tell() 查看文件指针
fp.flush() 刷新缓冲区和fp.close()类似

文件读取
fp.read(m) 文件读取 读取m个字节
fp.readline() 按行文件读取
fp.readlins() 列表形式读取文件
for i in fp 遍历文件内容
for i in fp.readlins() 遍历文件内容
文件写入
fp.write(内容) 文件中写入内容
fp.writelines(list) 文件中写入列表类型内容
文件内容清空
fp.truncate() 文件内容清空
IO流操作
引入模块io
f=io.StringIO()
f=io.BytesIO()
f.getvalue()

import os
os.remove(file_dress) 删除文件
os.rename(old,new) 文件重命名
os.getcwd() 获得绝对路径
os.removedirs() 移除多级目录
os.rmdir() 移除空目录
os.stat() 文件状态
os.mkdir() 创建目录
os.mknod() 创建一个文本文件
os.exit() 终止当前进程
os.listdir() 列出目录下的全部目录和文件
os.system(“m”) m为操作系统命令

os.path.isfile() 是否是文件
os.path.isdir() 是否是目录
os.path.isabs() 是否是绝对路径
os.path.islink() 是否是快捷方式
os.path.exists() 文件是否存在
os.path.basename() 根文件名
os.path.dirname() 文件的上级目录地址
os.path.split() 路径分割
os.path.splitext() 分割文件后缀名
os.path.getsize() 获取文件字节大小
os.path.join(m,n) 文件目录拼接

import shutil
shutil.copyfile(oldfile,newfile) 文件复制
shutil.copytree(oldfile,newfile) 文件目录复制
shutil.copy(oldfile,newfile/newtree)文件/文件目录复制
shutil.move(oldfile,newfile) 文件移动
shutil.rmtree() 空目录、有内容的目录都可以删
shutil.chdir() 文件目录改变
包和包的管理
导入一个同级1.py文件 import 1 导入一个只可以被引用不可执行的同级1.py文件import .1
导入上一级的 1.py文件 import …1
from a.b.c import hi表示从a下面的b下面的c中导入一个hi函数
from 和 import 后面既可以接目录名也可以接不带后缀的文件名
import sys
sys.path.append(r"filedir") filedir:目录路径 可以是绝对路径也可以是相对路径

正则表达式
import re
re.findall(x,y) x:寻找的字符串 y:从y字符串中寻找
从整个字符串里面匹配,将所有匹配到的字符以列表形式返回
re.match(x,y) x:寻找的字符串 y:从y字符串中寻找
从起始位置开始匹配,若没有匹配到则返回None
re.search(x,y) x:寻找的字符串 y:从y字符串中寻找
从整个字符串里面匹配,匹配第一次出现的字符串
match search 方法中需要用group()来返回已经匹配到的字符串span()来返回已经匹配的字符串的下标值

单字符匹配
. 匹配任意一个字符(除\n外)
[] 匹配括号中列举的字符
[0-9]匹配0-9之间的数字
[a-z]匹配a-z之间的字母
[A-Z]匹配A-Z之间的字母
[^abc]匹配除abc之外的字符
\d 匹配数字
\D 匹配非数字
\s 匹配空白
\S 匹配非空白
\w 匹配单词字符(a-z, A-Z ,0-9, _)
\W 匹配非单词字符
代表数量的元字符
* 要匹配的前一个字符出现0次或者无限次
+ 要匹配的前一个字符至少出现1次
?要匹配的前一个字符出现1次或者0次
{n}匹配前一个字符出现n次
{n,}匹配前一个字符至少出现n次
{m,n}匹配前一个字符出现m到n次
表示边界的元字符
^匹配字符串开头
$匹配字符串结尾
\b匹配一个单词的边界
\B匹配一个单词的非边界
A|B 匹配左右任意一个表达式
()将括号里的内容提取出来
贪婪模式.* 找最长的匹配 尽可能多的匹配内容
非贪婪模式.*?找最短的匹配

猜你喜欢

转载自blog.csdn.net/qq_44647926/article/details/88535992
doc