(1)字符串(全部返回的都是新的字符串,字符串属于有序不可变序列)s.replace(old,new,[max]) s.strip('a’):从字符串前后剔除字符串’a’ s.lstrip('a’):从左边开始删除字符串’a' s.rstrip('a’):从右边开始删除字符串’a' s.index('k’,start,end):找不到会报错,建议前面加个异常处理结构 s.find('k’,start,end):找不到不会报错 s.upper():所有字符转换为大写字符 s.lower():所有字符转换为小写字符 s.capitalize():首字符的首字母大写 s.title():所有字符首字符大写 s.isalpha():判断字符是否为字母 s.isupper():判断字符是否为大写 s.islower():判断字符是否为小写 s.center(10,’*’):会填充字符 正则表达式: import re:导入字符处理模块 re.match(pattern,s,[flag]):匹配 re.search(pattern,s,[flag]):查找 re.findall(pattern,s,[flag]):查找 pattern=re.compile(正则表达式) flag取值: re.I:匹配时忽略字符大小写 re.L:根据本地设置而更改\w\W\b\B\S\s的匹配内容 re.M:多行匹配 re.S:使’.'也匹配模式 re.U:匹配Unicode字符 re.X:忽略patterns中的空格,并使用#注释 (2)列表(列表属于有序可变序列)列表仅用于表示一维和二维数据 l.index('k’,start,end):作用与上相同 l.append():类似于栈的入栈 l.pop():类似于栈的出栈 l.insert(i,value):在下标i出插入指定长,列表长度加一,i取值可以为[0,len(l)] l.remove(’'k):删除’k’在列表中出现的第一次,列表长度减一 l[a:]:序列切片操作l[::-1]等价于reversed(l) a=b:a,b指向同一对象,会互相影响 a=b[:]:a只是复制了b中所有的值,但是两者互不干扰 l.extend(l1):l会将l1中元素追加到自己的末尾,不改变其内存首地址,属于原地操作 (3)字典 (字典属于可变序列)d=dict()等价于d={}:字典初始化 dict.pop(d[a]):删除键值对,返回指定键值的值(不存在会报错,建议用异常处理结构检查) dict.items():返回一个键值对组成的迭代对象,可以用list()强制转换 dict.keys():返回一个键值组成的迭代对象 dict.values():返回一个键值的值组成的迭代对象 dict.get(a,b):获取字典中指定键值a的值,不存在返回b(默认值,可以自己设置) 字典的键值必须为不可变数据类型:元组,字符串,常量(整型,复数,浮点型),且键值唯一。 字典排序:按键的值排序,逆序: k=sorted(dict…items(),key=lambda x:x[1],reverse=True) 按键值排序,逆序 k=sorted(dict.items(),lambda x:x[0],reverse=True) 二维排序 m=sorted(nums,key=lambda x:(nums.count(x),-x)) nums:一个可遍历序列,排序先按元素出现次数排序,当次数相同时,按大小排序逆序排序 (4)元组(元组属于有序不可变序列)tuple(l):将可遍历序列l转换为元组 (5)集合(集合属于无序可变序列,元素不重复)set()!={}:集合初始化要么用set(),要么至少包含一个元素{1} 集合与集合之间只有包含的关系,集合不属于线性结构 a={1},b={1,2} a.add(3)操作之后a={1,3} a.update(b)操作之后a={1,2,3}:会添加b中自身不存在的元素 a&b 求交集 a|b 求并集 forzenset():不可变集合 (6)进阶函数map(function,list):function必须为单参数函数,list必须是可遍历序列 x,y=map(int(),['1’,'2’]):序列解包 list(map(lambda x:x+1,[1,2,]))输出[2,3],(注意map()函数返回的是一个可迭代对象,需要转换为所需序列类型) filter(function,list):function必须为单参数函数,list必须为可遍历序列 list(filter(lambda x:x>5,[4,5,6]))输出[6] reduce(function,list):function可以接收多个参数,list必须为可遍历序列 reduce(lambda x,y:x*y,[1,2,3])返回6 lambda:匿名函数,f=lambda x:x+=1 print(f(5))会输出6 (7)所有结构判断结构 if if-else if-elif-else 循环结构(遍历循环,至少执行一次遍历):for i in l:其中l必须为可遍历序列 循环i结构(无限循环,可能出现死循环):while 条件 使用break语句可以跳出最近一层的循环;使用continue会跳出当前当此循环,会回到循环开始处继续执行。 异常处理结构(使用异常结构无法避免逻辑错误) try:执行部分代码 except:捕捉异常(无异常继续往后执行) else:如果不引发异常可以执行 finally:不论是否有异常都会执行(但在finally中仍可能引发异常,慎用) 异常通常是在程序运行过程中发生的异常事件,通常由外部问题导致; 错误是指导致系统不能按照用户意图进行工作的一切原因,致使程序无法正常进行; 基本逻辑控制类型:顺序、条件、循环 (8)其他知识点pytthon特点:通用性好,python语言可以用于几乎任何程序设计相关应用的开发; 语法简洁;生态高产;除此之外还有:跨平台,强制缩进(一般不需要缩进,顶行编写且不留空白;缩进用来表示后续代码与邻近无缩进代码的所属关系;缩进不会增加编程难度),支持中文;在最新的Linux系统中内置有python解释器。 python是一种被广泛使用的高级通用脚本编程语言,不是机器语言,而且是解释执行的,一条一条语句的执行。 高级语言根据计算机执行机制的不同可分为:静态语言和脚本语言;静态语言采用编译方式执行,脚本语言采用解释方式执行。 组合类型:集合,序列,映射(字典) 基本数据类型:整型,浮点型,复数 序列类型是一维元素向量,元素之间存在先后关系,通过下标(序号)访问(字符串、元组、列表) 序列解包:a,b,c=1,2,3等价于a,b,c=(1,2,3)等价于a,b,c=[1,2,3] pip install/uninstall 库名:安装/卸载第三方库 pip download 包:下载一个包 python常用内置函数: abs():求绝对值 sum():求和(参数必须是序列类型,且元素必须是可计算类型) all():当参数中所有值为True时返回True any():当参数中有一个值为True时返回True format():格式化函数,格式标记包括:<填充><对齐><宽度><.><精度><类型> 填充常与对其一起使用:^居中对齐,>右对齐,<左对齐 eval():若参数为数据类型或者表达式,可以返回最终计算结果;若为字符串,必须包含两层引号,否则会报错(建议采取异常处理判断) id():获取对象的内存地址,返回内存地址(一个正整数) type():返回参数的数据类型 min():返回序列中的最小值(前提是序列中元素可以比较) max():返回序列中的最大值(前提是序列中元素可以比较) yield:把一个函数变成一个generater,带有yield的函数不再是一个普通函数,python解释器会将其视为一个可迭代对象。 int('12’,16)等价于18(将一个16进制表示的字符串转换为十进制数) 参数定义规则: def 函数名(a,b=0,*c,**d):a为位置参数,b为默认参数,c可以传入一串数据(类似一个元组),d可以传入字典(e=0.f=1) 位置参数在前,默认参数,可变长度参数,全局变量在函数内部使用时,必须使用global关键字声明; 使用函数目的:降低编程难度,提高代码复用 缩进指每行语句开始前的空白区域,用来表示程序间的包含和层次关系 全局变量在函数内部使用时,需提前使用保留字global进行声明 局部变量指在函数内部定义的变量,仅在函数内部有定义,当函数退出时,变量将不再存在。在同一个作用域内,局部变量会隐藏全局变量。 函数中return可以多个值,会以元组形式返回;也可以不写,默认返回值为None。 函数默认值在函数定义时确定,如果默认值为列表、字典、集合等可变对象,并且在函数内部通过下标或对象自身的原地操作方法来使用形参,操作的结果会被保存,会影响后续调用。(解决办法,在函数开始加一个判断语句,判断该可变对象长度是否为None,不是就将其置为None) |
|