分享

Python基础知识汇总(避坑)

 老三的休闲书屋 2021-04-01

(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转换为元组
注意元组只有一个元素时必须为(a,):逗号不能省略

(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)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多