字符串的本质是:字符序列。Python的字符串是不可变的。 Python不支持单字符类型,单字符也是作为一个字符串使用的。 使用 注:在python中,在字符串的前面添加r,表示原生字符串 注:这两种方式都会生成新的字符串对象 len函数可以获取字符串的长度 find rfind 类似于 find()函数,不过是从右边开始查找 index rindex startswith 判断字符串是否以指定内容开始 endswith 判断字符串是否以指定内容结束 isalpha 判断字符串是否是纯字母 isdigit 判断一个字符串是否是纯数字,只要出现非0~9的数字,结果就是False isalnum 判断是否由数字和字母组成。只要出现了非数字和字母,就返回False isspace 如果字符串中只包含空格,则返回 True,否则返回 False isascii 如果字符串中的所有字符都是ASCII,则返回True;否则返回False。 判断时必须是字符串形式,否则会报错 isupper 字符串中所有的字母都为大写,则返回True;否则返回False islower 字符串中所有的字母都为小写,则返回True;否则返回False isnumeric 检测字符串是否只由数字组成。这种方法是只针对unicode对象 定义一个字符串为Unicode,只需要在字符串前添加 ‘u’ 前缀即可 isprintable 判断是否为可打印字符串,如果所有字符都是可打印的,则返回 True,否则返回 False 不可打印的字符可以是回车、换行符、制表符 istitle 判断是否首字母大写,其他字母小写 isidentifier 判断字符串是否是有效的 Python 标识符 如果字符串仅包含字母数字或下划线,则该字符串被视为有效标识符。有效的标识符不能以数字开头或包含任何空格 isdecimal 如果字符串是否只包含十进制字符返回True,否则返回False 这种方法只存在于unicode对象 count 返回 所查询字符串 在start和end之间 在 原字符串 里面出现的次数 replace 替换字符串中指定的内容,如果指定次数count,则替换不会超过count次 所要替换的字符不在字符串中也不会报错 整个过程中,实际上是创建了新的字符串,原字符串并没有改变。 split 可以将一个字符串切割成一个列表 默认最大分割数为-1,表示无限制,可以省略;也可以自己指定最大分割数 默认按照空格、换行符、制表符分割 rsplit 用法和split基本一致,只不过是从右往左分割 splitlines 按照行分隔,返回一个包含各行作为元素的列表 partition 指定一个字符串str作为分隔符,将原字符串分为三部分,str前,str,str后。这三部分组成一个元组 rpartition 类似于partition()函数,不过是从右边开始 capitalize 第一个单词的首字母大写 title 每个单词的首字母大写 lower 所有都变成小写 upper 所有都变成大写 将字符串中的所有大写字母转换为小写字符 将字符串中小写转为大写,大写转为小写 ljust 返回指定长度的字符串,并在右侧使用空白字符补全(左对齐) 如果本身长度大于指定长度,则不做任何处理 可以指定填充字符,默认是空格 rjust 返回指定长度的字符串,并在左侧使用空白字符补全(右对齐) 可以指定填充字符,默认是空格 center 返回指定长度的字符串,并在两端使用空白字符补全(居中对齐) 可以指定填充字符,默认是空格 去除前后空白,空白有:空格、t(制表符)、n(换行符) lstrip 删除字符串左边的空白字符 rstrip 删除字符串右边的空白字符 strip 删除字符串两边的空白字符 指定删除字符 把字符串中的 tab 符号(’t’)转为空格,tab 符号(’t’)默认的空格数是 8 join 作用:可以把列表或者元组快速的转变成为字符串,并且以指定的字符分隔 前提:列表或者元组里面的元素必须都是 str 类型 建议使用这种方式进行字符串拼接,效率比 str+str 高,因为 join 只创建一次字符串对象。 maketrans 创建字符映射的转换表。 translate 根据 注:先过滤(转为None),然后转换 字符串格式的数字在排序时跟我们预想的不太一样,比如11排在2前面,这样就带来了一些问题,比如合并一些用数字命名的文件时,合并文件的顺序可能就发生变化了,那么在数字前面填充0,让这些数字的长度保持一致,问题就解决了。 切片:就是从字符串里复制一段指定的内容,生成一个新的字符串。 step:步长。默认为1 步长不能为0,否则报错 步长为负数时,表示从右往左获取 start和end如果是负数时,表示索引从右边数 倒序 如果只设置了start,会“截取”到最后 如果只设置了end,会从头开始“截取” 如果 start 、end 不在 字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。 Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制驻留机制。 在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用文章目录
字符串
基本特点
编码
ord()
获取字符对应的编码。chr()
根据编码获取对应的字符。>>> ord('马') 39532 >>> chr(39532) '马'
表示方式(创建)
a = "I'm Tom" # 一对双引号 b = 'Tom said:"I am Tom"' # 一对单引号 c = '''Tom said:"I'm Tom"''' # 一对三个单引号 d = """Tom said:"I'm Tom" """ # 一对三个双引号
转义字符
来表示一个转义字符,
在行尾时,表示续行符。
n
表示一个换行t
表示一个tab'
显示一个普通的单引号"
显示一个普通的双引号\
表示一个普通的反斜线r
表示一个回车b
表示一个退格(backspace)k = r'good morning' print(k) # good morning
字符串拼接
>>> 'a' + 'b' 'ab' >>> 'c' 'd' 'cd'
字符串复制
>>> 'jack'*3 'jackjackjack'
常见操作
1. 获取长度
mystr = '今天天气好晴朗,处处好风光呀好风光' print(len(mystr)) # 17 获取字符串的长度
2. 查找内容
S.find(sub[, start[, end]]) -> int
str1 = 'hello' print(str1.rfind('l')) # 3
3. 判断
S.startswith(prefix[, start[, end]]) -> bool
print('hello'.startswith('he')) # True
S.endswith(suffix[, start[, end]]) -> bool
print('hello'.endswith('o')) # True
mystr = 'hello world' print(mystr.isalpha()) # False 因为中间有空格
print('good'.isdigit()) # False print('123'.isdigit()) # True print('3.14'.isdigit()) # False
print('hello123'.isalnum()) # True print('hello'.isalnum()) # True
print(' '.isspace()) # True
a = 'a' print(a.isascii()) # True
b = 'Hello' print(b.isupper()) # False c = 'LUCY' print(c.isupper()) # True
b = 'Hello' print(b.islower()) # False c = 'lucy' print(c.islower()) # True
str1 = u"一壹①②③⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ❶❷❸❺❺❻❼❽❾❿2009" print(str1.isnumeric()) # True
str1 = 'abc' print(str1.isprintable()) # True
str2 = 'abctdef' print(str2.isprintable()) # False
str1 = 'LuCy' print(str1.istitle()) # False str2 = 'Lucy Ha' print(str2.istitle()) # True
str1 = 'True' print(str1.isidentifier()) # True 关键字作为变量名检测不出来 str2 = '3abc' print(str2.isidentifier()) # False str3 = 'username' print(str3.isidentifier()) # True
str1 = u"this2009" print(str1.isdecimal()) # False str2 = u"23443434" print(str2.isdecimal()) # True
4. 计算出现次数
S.count(sub[, start[, end]]) -> int
str1 = 'hello' print(str1.count('l')) # 2
5. 替换内容
replace(self, old, new, count)
msg = '他很牛逼,他很秀,他很帅' msg1 = msg.replace('他', 'lucy') # 默认全部替换 msg2 = msg.replace('他', 'lucy', 2) # 从左至右,替换前两个 print(msg1) # lucy很牛逼,lucy很秀,lucy很帅 print(msg2) # lucy很牛逼,lucy很秀,他很帅
s1 = 'abcd' print(s1.replace('lucy', 'cc')) # abcd
6. 切割字符串
x = 'zhangsan-hahaha-tom-tony-lucy' y = x.split('-', -1) z = x.rsplit('-') print(y) # ['zhangsan', 'hahaha', 'tom', 'tony', 'lucy'] print(z) # ['zhangsan', 'hahaha', 'tom', 'tony', 'lucy']
x = 'zhangsan-hahaha-tom-tony-lucy' print(x.split('-', 2)) # ['zhangsan', 'hahaha', 'tom-tony-lucy']
x = '-hahaha-tom-tony-lucy' y = x.split('-') print(y) # ['', 'hahaha', 'tom', 'tony', 'lucy']
s = 'my name is lucy' s1 = s.split() print(s1) # ['my', 'name', 'is', 'lucy']
x = 'zhangsan-hahaha-tom-tony-lucy' print(x.rsplit('-', 2)) # ['zhangsan-hahaha-tom', 'tony', 'lucy']
str1 = 'hellonworld' print(str1.splitlines()) # ['hello', 'world']
print('agdaXhhXhjjs'.partition('X')) # ('agda', 'X', 'hhXhjjs')
print('agdaXhhXhjjs'.rpartition('X')) # ('agdaXhh', 'X', 'hjjs')
7. 修改大小写
mystr = 'hello world' print(mystr.capitalize()) # Hello world
mystr = 'hello world' print(mystr.title()) # Hello World
mystr = 'hElLo WorLD' print(mystr.lower()) # hello world
mystr = 'hello world' print(mystr.upper()) #HELLO WORLD
casefold()
s1 = 'I Love Python' print(s1.casefold()) # i love python
swapcase()
s1 = 'I Love Python' print(s1.swapcase()) # i lOVE pYTHON
8. 空格处理
str = 'hello' print(str.ljust(10)) # hello 在右边补了五个空格
print('lucy'.ljust(10, '+')) # lucy++++++
str = 'hello' print(str.rjust(10)) # hello在左边补了五个空格
str = 'hello' print(str.center(10)) # hello 两端加空格,让内容居中
mystr = ' he llo ' print(str.lstrip()) #he llo 只去掉了左边的空格,中间和右边的空格被保留
mystr = ' he llo ' print(str.rstrip()) # he llo右边的空格被删除
str = ' he llo ' print(str.strip()) #he llo
s = 'fgk太k白ser' s1 = s.strip('fkgres') # 前后同时进行 print(s1) # 太k白
expandtabs()
s1 = 'atbcd' print(s1) print(s1.expandtabs()) print(s1.expandtabs(tabsize=4)) print(s1.expandtabs(tabsize=0)) # a bcd # a bcd # a bcd # abcd
9. 字符串拼接
S.join(iterable)
s = 'lucy' s1 = '+'.join(s) print(s1) # l+u+c+y
print('+'.join({'name': 'lucy', 'age': 18})) # name+age
l1 = ['my', 'name', 'is', 'lucy'] s1 = ' '.join(l1) print(s1) # my name is lucy
10. 加密解密(映射替换)
str.maketrans(intab, outtab,delchars)
intab -- 字符串中要替代的字符组成的字符串。 outtab -- 相应的映射字符的字符串。 delchars -- 可选参数,表示字符串中的每个字符都会被映射为None intab和outtab都是字符串,且长度必须相等
maketrans()
函数给出的转换表来转换字符串中的字符。in_str = 'afcxyo' out_str = '123456' # maketrans()生成转换表,必须使用str调用 # map_table的类型是字典 map_table = str.maketrans(in_str, out_str) # 使用translate()进行转换 my_love = 'I love fairy' new_my_love = my_love.translate(map_table) print(new_my_love) # I l6ve 21ir5
in_str = 'afcxyo' out_str = '123456' # maketrans()生成转换表,必须使用str调用 map_table = str.maketrans(in_str, out_str, 'yo') # 使用translate()进行转换 my_love = 'I love fairy' new_my_love = my_love.translate(map_table) print(new_my_love) # I lve 21ir
11. 字符串前补0
zfill()
a = 3 b = str(a).zfill(4) print(b) # 0003
切片(slice)
m[start:end:step]
顾头不顾尾
m = 'abcdefghigklmnopqrstuvwxyz' print(m[2:9]) # cdefghi
m = 'abcdefghigklmnopqrstuvwxyz' print(m[2:9:0]) # 报错
m = 'abcdefghigklmnopqrstuvwxyz' print(m[3:15:-1]) # 没有数据 print(m[15:3:-1]) # ponmlkgihgfe
m = 'abcdefghigklmnopqrstuvwxyz' print(m[-9:-5]) # rstu
m = 'abcdefghigklmnopqrstuvwxyz' print(m[::-1]) # zyxwvutsrqponmlkgihgfedcba
m = 'abcdefghigklmnopqrstuvwxyz' print(m[2:]) # cdefghigklmnopqrstuvwxyz
m = 'abcdefghigklmnopqrstuvwxyz'print(m[:9]) # abcdefghi
[0, 字符串长度 - 1]
这个范围内,也不会报错m = 'abcdefghigklmnopqrstuvwxyz' print(m[-100:-1]) # abcdefghigklmnopqrstuvwxy
字符串驻留机制
>>> a = 'abc_123' >>> b = 'abc_123' >>> a is b True >>> c = 'abc#' >>> d = 'abc#' >>> c is d False
可变字符串
io.StringIO对象
或array模块
,不会创建新的字符串。>>> import io >>> s = 'hello, Lucy' >>> sio = io.StringIO(s) >>> sio <_io.StringIO object at 0x7f8bbfdd8948> >>> sio.seek(4) 4 >>> sio.write('k') 1 >>> sio.getvalue() 'hellk, Lucy'
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算