python基础
1、数据类型
1.1基本数据类型
字符串。
查询类:字符计数count、字符索引 .index、替换replace、
大小写转换:lower等
判断类:判断数字.isdecimal(),.isdigit(),isnumeric()范围变大,最大的接受汉字数字。isalpha()字母,isalnum()字母+数字。判断开头.startswith(('a','b'),0,4)。isprintable()打印字符
处理类:.strip(__chars='.com')去指定字符,默认是空格,也可只去除前或后面。.split()分割。.join(['1','2','3'])拼接123。格式化字符串'{}awd{}'.format(a,b)
数值。
布尔。
1.2复合数据类型
列表。查:切片list[2:10:-1]查索引.index(value) 增:加元素.append() .insert(5,'x')指定位置 删除元素 .remove('x') .pop(index) 排序list.sort(key=len) 合并list.extend([])
元组。.index() .count() 多重赋值tuple,*arg = (1,2,3,4)
字典。查值和键.values() .keys() .items()转元组 .get(key)不报错查值 仅增key赋值 .setdefault(key,value) .update(dict2)同列表extend 创建 工厂函数+关键字参数/元组对 删 .pop(key)
集合。集合运算:&|^交并补集 -差集 <>父子集 增删改查:set.add() .remove(value) .update(set)同列表extend
2、控制语句
if elif else
for\while循环
try except else 无错误时 finally
3、运算
数值运算+-*/ % ** //
判断运算==,!= 赋值=,+=等
逻辑运算and or not in/ not in/ is /is not /and /all
三元运算a if ... else b
4、内置函数
重要:
.divmod(5,2)返回商和余数 filter(func,iterable)把可迭代对象进行func判断,为真的留下 map(func,iterable[,iterable])按func需要的参数数量,依次把可迭代对象的元素传入,返回可迭代对象 pow(a,b[,z])a**b[%z] sorted(iterable,key=func)以func对每个元素的计算结果为key排序 zip(iterable,iterable)两个可迭代对象压成元组为元素的可迭代对象 sum([],start=100)求和,额外+100
assert断言
不重要:
chr() ord()数字与编码结果转换 frozenset(set)冻结集合 id()返回内存地址 hash() hex()等,生成散列值(当前窗口下相同对象的值相同)、十六进制 ascii()转字符串,换行符等也变字符串
5、面向对象
基本创建方法,super调用父类。
class Cat(super_class): def __init__(self,attr1,attr2): self.attr1 = attr1 self.__attr2 = attr2 私有属性 super(cat,self).__init__(super_class构造函数里的参数)
高级用法
1 @staticmethod 2 def fun1(): 3 静态方法,无法访问类的其他属性 4 @classmethod 5 def fun2(cls): 6 类方法,只能访问cls的变量,不能访问实例变量(__init__中的变量) 7 @property 8 def fun3(self): 9 属性方法,把方法改成属性 10 @attribe_func.setter 11 def fun4(self,age): 12 属性方法的配套修改方法 13 @attribe_func.deleter 14 def fun5(self): 15 属性方法的配套删除方法
偏门但是很帅的用法,给实例加上字典的功能
1 class dict1(object): 2 def __init__(self): 3 self.dictionary = {} 4 def __setitem__(self,key,value): 5 self.dictionary[key] = value 6 def __getitem__(self,key): 7 return self.dictionary[key] 8 def __delitem__(self, key): 9 del self.dictionary[key] 10 m = dict1() 11 m['key'] = 890 12 print(m.dictionary) 13 print(m['key']) 14 del m['key'] 15 print(m.dictionary)
传说中的多态,对类某个方法的重新封装,所有有talk()方法的类都可以调这个接口执行talk
def talk(obj): obj.talk()
判断是否a的子类issubclass(b,a) 判断是否实例isinstance(b,a)
神奇的反射:检查对象有没有a属性hasattr(obj,‘a’) 获取对象的a属性(如为方法则获取内存地址)getattr(obj,'a'[,default]) 给对象加属性或方法setattr(obj,'a',22/func) 删对象的属性delattr(obj,'a')
可以更改自带的魔法方法,根据需求在调用该方法时实现一些私货功能。
浙公网安备 33010602011771号