python字符串内置函数
1、字符串
定义:它是⼀个有序的字符的集合,⽤于存储和表⽰基本的⽂本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串
特性:
1.只能存放⼀个值
2.不可变
3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
补充:
1.字符串的单引号和双引号都⽆法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前⾯加r,如name=r'l\thf'
2.unicode字符串与r连⽤必需在r前⾯,如name=ur'l\thf'
2、字符串常⽤操作
# 1字母处理:
.upper() # 全部⼤写
.lower() # 全部⼩写
.swapcase() # ⼤⼩写互换
.capitalize() # ⾸字母⼤写,其余⼩写
.title() # ⾸字母⼤写
a='helLO'
print(a.upper()) # 全部⼤写
print(a.lower()) # 全部⼩写
print(a.swapcase()) # ⼤⼩写互换
print(a.capitalize()) # ⾸字母⼤写,其余⼩写
print(a.title()) # ⾸字母⼤写
View Code
# 2格式化相关
.ljust(width) # 获取固定长度,左对齐,右边不够⽤空格补齐
.rjust(width) # 获取固定长度,右对齐,左边不够⽤空格补齐
.center(width) # 获取固定长度,中间对齐,两边不够⽤空格补齐
.zfill(width) # 获取固定长度,右对齐,左边不⾜⽤0补齐
a='1 2'
print(a.ljust(10)) # 获取固定长度,左对齐,右边不够⽤空格补齐
print(a.rjust(10)) # 获取固定长度,右对齐,左边不够⽤空格补齐
(10)) # 获取固定长度,中间对齐,两边不够⽤空格补齐
print(a.zfill(10)) # 获取固定长度,右对齐,左边不⾜⽤0补齐
执⾏结果:
1 2
1 2
1 2
00000001 2
View Code
# 3 字符串搜索相关
.find() # 搜索指定字符串,没有返回-1
.index() # 同上,但是不到会报错
.
rfind() # 从右边开始查
.count() # 统计指定的字符串出现的次数
# 上⾯所有⽅法都可以⽤index代替,不同的是使⽤index查不到会抛异常,⽽find返回-1
s='hello world'
print(s.find('e')) # 搜索指定字符串,没有返回-1
print(s.find('w',1,2)) # 顾头不顾尾,不到则返回-1不会报错,到了则显⽰索引
print(s.index('w',1,2)) # 同上,但是不到会报错
unt('o')) # 统计指定的字符串出现的次数
print(s.rfind('l')) # 从右边开始查
# 4字符串替换
.replace('old','new') # 替换old为new
.
replace('old','new',次数) # 替换指定次数的old为new
s='hello world'
place('world','python'))
place('l','p',2))
place('l','p',5))
执⾏结果:
hello python
heppo world
heppo worpd
# 5字符串去空格及去指定字符
.strip() # 去两边空格
.
lstrip() # 去左边空格
.rstrip() # 去右边空格
.split() # 默认按空格分隔
.split('指定字符') # 按指定字符分割字符串为数组
s=' h e-l lo '
print(s)
print(s.strip())
print(s.lstrip())
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() # 函数:可以⽣成⼀个整数序列
type() # 查看数据类型
len() # 计算字符串长度
format() # 格式化字符串,类似%s,传递值能多不能少
3、python中str函数isdigit、isdecimal、isnumeric的区别isdigit()
True: Unicode数字,byte数字(单字节),全⾓数字(双字节),罗马数字
False: 汉字数字
Error: ⽆
isdecimal()
True: Unicode数字,,全⾓数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全⾓数字(双字节),罗马数字,汉字数字
False: ⽆
Error: byte数字(单字节)
4、内置函数
数学运算(7个)
类型转换(24个)
序列操作(8个)
对象操作(7个)
反射操作(8个)
变量操作(2个)
交互操作(2个)
⽂件操作(1个)
编译执⾏(4个)
装饰器(3个)
数学运算
abs:求数值的绝对值
abs(-2)
divmod:返回两个数值的商和余数
divmod(5,2)
divmod(5.5,2)
max:返回迭代对象中的元素的最⼤值或者所有参数的最⼤值
max(1,2,3) # 传⼊3个参数取3个中较⼤者
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:对元素类型是数值的可迭代对象中的每个元素求和
sum((1,2,3,4)) # 传⼊可迭代对象、元素类型必须是数值型
类型转换
bool:根据传⼊的参数的逻辑值创建⼀个新的布尔值
bool()或bool(0) # 数值0、空值为False
int:根据传⼊的参数创建⼀个新的整数
int() # 不传⼊参数时,得到结果0
float:根据传⼊的参数创建⼀个新的浮点数
float() # 不提供参数的时候,返回0.0
complex:根据传⼊参数创建⼀个新的复数
complex() # 当两个参数都不提供时,返回复数 0j
str:返回⼀个对象的字符串表现形式(给⽤户)
bytearray:根据传⼊的参数创建⼀个新的字节数组
bytearray('中⽂','utf-8')
bytearray(b'\xe4\xb8\xad\xe6\x96\x87')
bytes:根据传⼊的参数创建⼀个新的不可变字节数组
bytes('中⽂','utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
memoryview:根据传⼊的参数创建⼀个新的内存查看对象
v=memoryview(b'asdf')
print(v[0]) # 97
print(v[-1]) # 102
ord:返回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, 1, 2, 3, 4, 5, 6, 7, 8, 9})
enumerate:根据可迭代对象创建枚举对象
l1=['one','two','three','five']
print(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) # <str_iterator object at 0x00000190B4D99668>
print(next(a)) # a
print(next(a)) # s
print(next(a)) # d
print(next(a)) # f
print(next(a)) # 报错StopIteration
slice:根据传⼊的参数创建⼀个新的切⽚对象
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类
class A(object):
def __init__(self):
print(A.__init__)
# 定义⼦类,继承A
class B(A):
def __init__(self):
print(B.__init__)
super().__init__()
# super调⽤⽗类⽅法
b=B()
print(b)
<function B.__init__ at 0x0000023DB0CA76A8>
<function A.__init__ at 0x0000023DB0CA7620>
object:创建⼀个新的object对象
序列操作
all:判断可迭代对象的每个元素是否都为True值
print(all([1,2])) # 列表中每个元素逻辑值均为True,返回True
print(all([0,2])) # 列表中0的逻辑值为False,返回False
any:判断可迭代对象的元素是否有为True值的元素
# 列表元素有⼀个为True,则返回True
# 列表元素全部为False,则返回False
filter:使⽤指定⽅法过滤可迭代对象的元素
map:使⽤指定⽅法去作⽤传⼊的每个可迭代对象的元素,⽣成新的可迭代对象
next:返回可迭代对象中的下⼀个元素值
# 传⼊default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值⽽不抛出StopIteration 异常reversed:反转序列⽣成新的可迭代对象
sorted:对可迭代对象进⾏排序,返回⼀个新的列表
zip:聚合传⼊的每个迭代器中相同位置的元素,返回⼀个新的元组类型迭代器
对象操作
help:返回对象的帮助信息
dir:返回对象或者当前作⽤域内的属性列表
id:返回对象的唯⼀标识符
hash:获取对象的哈希值
type:返回对象的类型,或者根据传⼊的参数创建⼀个新的类型
len:返回对象的长度
ascii:返回对象的可打印表字符串表现⽅式
format:格式化显⽰值
vars:返回当前作⽤域内的局部变量和其值组成的字典,或者返回对象的属性列表
class A(object):
pass
a=A()
print(a.__dict__) # {}
print(vars(a)) # {}
a.name='buer'
print(a.__dict__) # {'name': 'buer'}
print(vars(a)) # {'name': 'buer'}
反射操作
__import__:动态导⼊模块
print(__import__('os'))
print(__import__('time'))
# <module 'os' from 'D:\\Python36\\lib\\os.py'>
# <module 'time' (built-in)>
isinstance:判断对象是否是类或者类型元组中任意类元素的实例issubclass:判断类是否是另外⼀个类或者类型元组中任意类元素的⼦类hasattr:检查对象是否含有属性
class Student:
def __init__(self,name):
self.name=name
s=Student('Ethan')
print(hasattr(s,'name')) # 含有name属性为True
print(hasattr(s,'age')) # 不含有age属性为False
getattr:获取对象的属性值
print(getattr(s,'name')) # 存在属性name,Ethan
print(getattr(s,'age',20)) # 不存在属性age,但提供了默认值,返回默认值print(getattr(s,'age')) # 不存在属性age,未提供默认值,调⽤报错
报错如下:
Traceback (most recent call last):
File "D:/test.py", line 30, in <module>
print(getattr(s,'age'))
AttributeError: 'Student' object has no attribute 'age'
setattr:设置对象的属性值
print(s.name) # Ethan
setattr(s,'name','Tom') # name属性存在,做赋值操作
setattr(s,'age',18) # age属性不存在,创建这个属性
print(s.name) # Tom
print(s.age) # 18
delattr:删除对象的属性
class Student:
def __init__(self,name):
self.name=name
def foo(self):
print('hello %s' % self.name)
a=Student('Ethan')
print(a.name) # Ethan
print(a.foo()) # hello Ethan
print(delattr(a,'name')) # name属性被删除
print(a.name) # 调⽤报错
Traceback (most recent call last):
File "D:/test.py", line 50, in <module>
print(a.name) # 调⽤报错
AttributeError: 'Student' object has no attribute 'name'
callable:检测对象是否可被调⽤
class B:
def __call__(self, *args, **kwargs):
print('instances are callable now')
print(callable(B)) # 类B是可调⽤对象
b=B() # 调⽤类B
print(callable(b)) # 实例b是可调⽤对象
print(b()) # 调⽤实例b成功
# instances are callable now
变量操作
globals:返回当前作⽤域内的全局变量和其值组成的字典
locals:返回当前作⽤域内的局部变量和其值组成的字典
交互操作
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论