1、python字符串内置函数1、字符串定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,或“”或 中间包含的内容称之为字符串特性:1.只能存放一个值2.不可变3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序补充:1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如namerlthf2.unicode字符串与r连用必需在r前面,如nameurlthf 2、字符串常用操作123456# 1字母处理:.upper()# 全部大写.lower()# 全部小写.swapcase()# 大小写互换.capitalize()#
2、首字母大写,其余小写.title()# 首字母大写a=helLOprint(a.upper() # 全部大写print(a.lower() # 全部小写print(a.swapcase() # 大小写互换print(a.capitalize() # 首字母大写,其余小写print(a.title() # 首字母大写123456# 2格式化相关.ljust(width)# 获取固定长度,左对齐,右边不够用空格补齐.rjust(width)# 获取固定长度,右对齐,左边不够用空格补齐.center(width)# 获取固定长度,中间对齐,两边不够用空格补齐.zfill(width)# 获取固定长度
3、,右对齐,左边不足用0补齐a=1 2print(a.ljust(10) # 获取固定长度,左对齐,右边不够用空格补齐print(a.rjust(10) # 获取固定长度,右对齐,左边不够用空格补齐print(a.center(10) # 获取固定长度,中间对齐,两边不够用空格补齐print(a.zfill(10) # 获取固定长度,右对齐,左边不足用0补齐执行结果:1 2 1 2 1 2 00000001 212345678# 3 字符串搜索相关.find()# 搜索指定字符串,没有返回-1.index()# 同上,但是找不到会报错.rfind()# 从右边开始查找.count()# 统计指定
4、的字符串出现的次数# 上面所有方法都可以用index代替,不同的是使用index查找不到会抛异常,而find返回-1s=hello worldprint(s.find(e) # 搜索指定字符串,没有返回-1print(s.find(w,1,2) # 顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引print(s.index(w,1,2) # 同上,但是找不到会报错print(s.count(o) # 统计指定的字符串出现的次数print(s.rfind(l) # 从右边开始查找# 4字符串替换.replace(old,new) # 替换old为new.replace(old,new,次数
5、) # 替换指定次数的old为news=hello worldprint(s.replace(world,python)print(s.replace(l,p,2)print(s.replace(l,p,5)执行结果:hello pythonheppo worldheppo worpd# 5字符串去空格及去指定字符.strip() # 去两边空格.lstrip() # 去左边空格.rstrip() # 去右边空格.split() # 默认按空格分隔.split(指定字符) # 按指定字符分割字符串为数组s= h e-l lo print(s)print(s.strip()print(s.lst
6、rip()print(s.rstrip()print(s.split(-)print(s.split()# 6字符串判断相关.startswith(start) # 是否以start开头.endswith(end) # 是否以end结尾.isalnum() # 是否全为字母或数字.isalpha() # 是否全字母.isdigit() # 是否全数字.islower() # 是否全小写.isupper() # 是否全大写.istitle() # 判断首字母是否为大写.isspace() # 判断字符是否为空格# 补充bin() # 十进制数转八进制hex() # 十进制数转十六进制range(
7、) # 函数:可以生成一个整数序列type() # 查看数据类型len() # 计算字符串长度format() # 格式化字符串,类似%s,传递值能多不能少3、python中str函数isdigit、isdecimal、isnumeric的区别1234567891011121314isdigit()True:Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无isdecimal()True:Unicode数字,全角数字(双字节)False: 罗马数字,汉字数字Error: byte数字(单字节)isnumeric()True:Unico
8、de数字,全角数字(双字节),罗马数字,汉字数字False: 无Error: byte数字(单字节)4、内置函数 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作(8个) 变量操作(2个) 交互操作(2个) 文件操作(1个) 编译执行(4个) 装饰器(3个)数学运算12345678910111213141516171819202122232425abs:求数值的绝对值abs(-2)divmod:返回两个数值的商和余数divmod(5,2)divmod(5.5,2)max:返回迭代对象中的元素的最大值或者所有参数的最大值max(1,2,3)# 传入3个参数 取3
9、个中较大者max(1234)# 传入1个可迭代对象,取其最大元素值max(-1,0,key=abs)# 传入了求绝对值函数,则参数都会进行求绝对值后再取较大者min:返回可迭代对象中的元素的最小值或者所有参数的最小值min(1,2,3)# 传入3个参数 取3个中较小者min(1234)# 传入1个可迭代对象,取其最小元素值min(-1,-2,key=abs)# 传入了求绝对值函数,则参数都会进行求绝对值后再取较小者pow:返回两个数值的幂运算值或其余指定整数的模值pow(2,3)round:对浮点数进行四舍五入求值round(1.1111,1)sum:对元素类型是数值的可迭代对象中的每个元素求
10、和sum(1,2,3,4)# 传入可迭代对象、元素类型必须是数值型类型转换12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091bool:根据传入的参数的逻辑值创建一个新的布尔值bool()或bool(0)# 数值0、空值为Falseint:根据传入的参数创建一个新的整数int()# 不传入参数时,得到结果
11、0float:根据传入的参数创建一个新的浮点数float()# 不提供参数的时候,返回0.0complex:根据传入参数创建一个新的复数complex()# 当两个参数都不提供时,返回复数 0jstr:返回一个对象的字符串表现形式(给用户)bytearray:根据传入的参数创建一个新的字节数组bytearray(中文,utf-8)bytearray(bxe4xb8xadxe6x96x87)bytes:根据传入的参数创建一个新的不可变字节数组bytes(中文,utf-8)bxe4xb8xadxe6x96x87memoryview:根据传入的参数创建一个新的内存查看对象v=memoryview(b
12、asdf)print(v0)# 97print(v-1)# 102ord:返回Unicode字符对应的整数print(ord(a)chr:返回整数所对应的Unicode字符print(chr(97)bin:将整数转换成2进制字符串oct:将整数转化成8进制数字符串hex:将整数转换成16进制字符串tuple:根据传入的参数创建一个新的元组list:根据传入的参数创建一个新的列表dict:根据传入的参数创建一个新的字典set:根据传入的参数创建一个新的集合frozenset:根据传入的参数创建一个新的不可变集合a=frozenset(range(10)print(a)# frozenset(0,
13、 1, 2, 3, 4, 5, 6, 7, 8, 9)enumerate:根据可迭代对象创建枚举对象l1=one,two,three,fiveprint(list(enumerate(l1)# (0, one), (1, two), (2, three), (3, five)print(list(enumerate(l1,start=1)# 指定起始值# (1, one), (2, two), (3, three), (4, five)range:根据传入的参数创建一个新的range对象iter:根据传入的参数创建一个新的可迭代对象a=iter(asdf)print(a)# print(nex
14、t(a)# aprint(next(a)# sprint(next(a)# dprint(next(a)# fprint(next(a)# 报错StopIterationslice:根据传入的参数创建一个新的切片对象c1=slice(5)print(c1)# slice(None, 5, None)c1=slice(2,5)print(c1)# slice(2, 5, None)c1=slice(1,4,7)print(c1)# slice(1, 4, 7)super:根据传入的参数创建一个新的子类和父类关系的代理对象# 定义父类A类classA(object):def_init_(self)
15、:print(A._init_)# 定义子类,继承AclassB(A):def_init_(self):print(B._init_)super()._init_()# super调用父类方法b=B()print(b)object:创建一个新的object对象1序列操作1234567891011121314151617181920all:判断可迭代对象的每个元素是否都为True值print(all(1,2)# 列表中每个元素逻辑值均为True,返回Trueprint(all(0,2)# 列表中0的逻辑值为False,返回Falseany:判断可迭代对象的元素是否有为True值的元素# 列表元素
16、有一个为True,则返回True# 列表元素全部为False,则返回Falsefilter:使用指定方法过滤可迭代对象的元素map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象next:返回可迭代对象中的下一个元素值# 传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出StopIteration 异常reversed:反转序列生成新的可迭代对象sorted:对可迭代对象进行排序,返回一个新的列表zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器对象操作123456
17、78910111213141516171819help:返回对象的帮助信息dir:返回对象或者当前作用域内的属性列表id:返回对象的唯一标识符hash:获取对象的哈希值type:返回对象的类型,或者根据传入的参数创建一个新的类型len:返回对象的长度ascii:返回对象的可打印表字符串表现方式format:格式化显示值vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表classA(object):passa=A()print(a._dict_)# print(vars(a)# a.name=buerprint(a._dict_)# name: buerprint(va
18、rs(a)# name: buer反射操作1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465_import_:动态导入模块print(_import_(os)print(_import_(time)# # isinstance:判断对象是否是类或者类型元组中任意类元素的实例issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类hasattr:检查对象是否含有属性classStudent
19、:def_init_(self,name):self.name=names=Student(Ethan)print(hasattr(s,name)# 含有name属性为Trueprint(hasattr(s,age)# 不含有age属性为Falsegetattr:获取对象的属性值print(getattr(s,name)# 存在属性name,Ethanprint(getattr(s,age,20)# 不存在属性age,但提供了默认值,返回默认值print(getattr(s,age)# 不存在属性age,未提供默认值,调用报错报错如下:Traceback (most recent call l
20、ast):FileD:/test.py, line30,inprint(getattr(s,age)AttributeError:Studentobjecthas no attributeagesetattr:设置对象的属性值print(s.name)# Ethansetattr(s,name,Tom)# name属性存在,做赋值操作setattr(s,age,18)# age属性不存在,创建这个属性print(s.name)# Tomprint(s.age)# 18delattr:删除对象的属性classStudent:def_init_(self,name):self.name=named
21、effoo(self):print(hello %s%self.name)a=Student(Ethan)print(a.name)# Ethanprint(a.foo()# hello Ethanprint(delattr(a,name)# name属性被删除print(a.name)# 调用报错Traceback (most recent call last):FileD:/test.py, line50,inprint(a.name)# 调用报错AttributeError:Studentobjecthas no attributenamecallable:检测对象是否可被调用class
22、B:def_call_(self,*args,*kwargs):print(instances are callable now)print(callable(B)# 类B是可调用对象b=B()# 调用类Bprint(callable(b)# 实例b是可调用对象print(b()# 调用实例b成功# instances are callable now变量操作12globals:返回当前作用域内的全局变量和其值组成的字典locals:返回当前作用域内的局部变量和其值组成的字典交互操作123print:向标准输出对象打印输出input:读取用户输入值user=input(please input
23、 your name:)文件操作123456789open:使用指定的模式和编码打开文件,返回文件读写对象# 写入文件a=open(a.text,w)a.write(124sdgadgahg ggadh)# 读取文件a=open(a.text,rt)print(a.read()a.close()编译执行12345678910111213141516171819202122232425262728293031compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值# 流程语句使用execcode1=for i in range(5):print(i)c
24、ompile1=compile(code1,exec)exec(compile1)# 0# 1# 2# 3# 4# 简单求值表达式用evalcode2=1+2+3+4compile2=compile(code2,eval)print(eval(compile2)# 10eval:执行动态表达式求值print(eval(1+2+3+4)# 10print(eval(2*2*2)# 8print(eval(10/2+2*2)# 9.0exec:执行动态语句块exec(a=1+2)print(a)# 3exec(b=4*3/2-1)print(b)# 5.0repr:返回一个对象的字符串表现形式(给解释器)a=hello worldprint(str(a)# hello worldprint(repr(a)# hello world装饰器123456789101112131415161718192021222324252627282930313233343536property:标示属性的装饰器classA:def_init_(self):pa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1