set是没有value的字典
序列:range()
list方法:
[i:j]:[i,j)
extend()加多个元素
append()加一个元素
insert()插入
pop()弹出
remove()删除
index()索引
sort(reverse=true)降序排序
sorted()排序后形成新的列表
dict方法:
keys()获取建
values()获取值
items()获取键值对
get()根据键获取值
clear()清空
del()删除键值对
update()新增多个键值对
按dict的值排序:sorted(dict.items(),key=lambda x:x[1])
(lambda是简易函数 :左边是输入,右边是输出)
Set方法:
add()加单个,update()加多个,pop()随机弹出
issubset()子集
inuperset()超集
isdisjoint()无相同元素
difference()差集
intersection()、&交集
symmetric_difference()对称差集
union()并集
编码
编码:byte=str.encode(encoding='GBK')
译码:byte.decode(encoding='GBK')
ASCII编码是1个字节,而Unicode编码通常是2个字节。
UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节
计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码
ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
python中==比较列表内容,java中==比较地址
基操
链式赋值 :a,b,c=10,20,30
解包赋值:a,b=b,a(交换)
输入:input('提示信息')
输出:print()(有‘+’要求左右两边类型相同,有‘,’表示不换行,有‘r’加在前面说明转义字符失效)
x/y(含小数)x//7(不含小数)x**y(x的y次幂)
比较标识:is(is not)、and、or、not、not in
强制转换:int() float() str()
三元运算符:true操作 if bool条件 else false操作
占位符:pass
dir() 展示对象的所有属性和方法
isinstance(x,类型) 判断x是否是此类型
enumerate([]) 遍历元素的下标和值
生成式、闭包、装饰器
列表生成式:[x*x for x in range(1,11)]
生成器(generator一边循环一边计算):(x*x for x in range(1,11))
generator函数:有yield关键字,在调用next()时执行(其他对象用iter()可变为可迭代对象使 用next()),再次执行从yield处继续往下执行
返回闭包(内层函数引用外层函数局部变量(若要修改加nonlocal修饰))时函数不能有可变化的量(如循环)
def outer( a ): b = 10 nonlocal b#内层函数可改变 def inner(): print(a+b)#在内函数中 用到了外函数的临时变量 return inner# 外函数的返回值是内函数的引用装饰器:
import functools def log(fun): @fun(tools.wraps(fun))#声明包裹函数 def wrap(*arg,**kw): """ """ return fun(*arg,**kw) return wrap @log表明需要装饰 def now(): ~ #调用时会增加装饰部分map(f,[]) 把列表中每个元素取出来并作用于f函数
reduce(f,[]) 把列表中两个元素取出来作用后返回值参与下一次调用
filter(f,p[]) 返回列表中满足f的元素
partial(int,base=2) 偏函数,以二进制形式转换为int型
以上(wrap、reduce、partial均需要导入functools模块)
字符串
count() 统计特定字符的个数
str[m:n] 返回[m,n)子串
'%d'%(~) 格式化字符串
'{0}',format(~)
函数
异常处理
Base Exception 总父类
上述else代码只在无异常时执行,finally代码无论如何都会执行
类
类方法(cls) @classmethod修饰,通过类对象调用
实例方法(self) 通过实例对象调用
静态方法 @staticmethod修饰,只能通过类对象调用
另:
特殊属性:__class__类型
__mro__层次结构
__bases__所有父类
__base__父类
__subclasses__子类
特殊方法:___next__()返回下一个值
__iter__()返回迭代对象
__getiter__()获取下标对应元素
__str__()对象的描述类似于java中的tostring()
注:初始化时__变私有
#在多态方面,python与其他语言不同的是,只要对象有需要的方法,就可以用有该方法的类接收 如:
def fun(obj):
obj.eat()#某对象有eat方法即可传入此函数
自行给实例对象新增属性或方法:
1、setattr(obj,'y',18)
hasattr()
getattr()
2、obj.y=18(可在类中__slots__('name','age'))限定这样使用的范围
3、 @property
def score(self):
return self.__score#直接调用私有成员,不需要getter方法
@score.setter
def score(self,val):
self.__score=val#直接可以更改,不需要setter方法
模块
不想让别的模块调用本模块的内容,在该内容上输入main回车即可
Walk:获取当年目录文件和子文件
二进制读、写 rb、wb
+追加(r+、w+、a+)
上下文管理器(实现了enter()和exit(),可以自动close()):with open('路径','a+') as file



