Python转义字符
print('Kobe ' \
'bryant')
print('100\\''150')
print("\'")
print('Kobe\a''bryant')
print("A","M\b","C")
Python字符串运算符
有关内容前面已经陈述过,不再陈述。
Python字符串格式化
- Python支持格式化字符串的输出,尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符%s的字符串中
- 在Python中,字符串格式化使用与C中的sprintf函数一样的语法
在C中,sprintf:多了一个参数str,并且输出结果式保存在字符数组str中,而不是输出到屏幕,如sprintf(str,“Price is %d”,d);
在Python中这样表示,
print("%s is %d" % (‘价格’,999))
格式化操作符辅助指令:
f-string
f-string是python3.6之后版本添加到,称为字面量格式化字符串,是新的格式化字符串的语法。
之前我们用%,如
f-string格式化字符串以f开头,后面跟着字符串,字符串中的表达式用大括号{}包起来,它会将变量或表达式计算后的值替换进去,如:
w = {'name': 'Kobe', 'xing': 'bryant'}
print(f'{w["name"]} {w["xing"]}')
用了这种方式明显更简单了,不用再去判断使用%s还是%d.
在python3.8中可以使用=来拼接运算表达式与结果,如:
x=1
print(f'{x+1}')
print(f'{x+1=}')
Python的字符串内建函数
函数较多(40个),请耐心观看!
capitailze()
将字符串的第一个字符转换为大写
str="acm"
print(str.capitalize())
center(width,fillchar)
返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。`
center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。返回一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。
str="Kobe bryant"
print(str.center(40,'*'))
注意:
- 如果 width 小于字符串宽度直接返回字符串
- fillchar 默认是空格
- fillchar 只能是单个字符
count(str,beg=0,end=len(string))
返回 str(子字符串) 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
str="aaaassssdddd"
sub='a'
print(str.count(sub))
print(str.count(sub,0,3))
bytes.decode(encoding="utf-8",errors="strict")
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
str = "菜鸟教程";
str_utf8=str.encode("UTF-8")
str_gbk=str.encode("GBK")
print("UTF—8编码:",str_utf8)
print("GBK 编码:", str_gbk)
print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
print("GBK 解码:", str_gbk.decode('GBK','strict')
encode(encoding='UTF-8',errors='strict')
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
参考4
endswith(suffix,beg=0,end=len(string))
suffix——后缀
检查字符串是否以 obj 结束,如果beg 或者 end 指定,则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.也就是如果字符串含有指定的后缀返回 True,否则返回 False。
str="Kobe bryant"
suffix="t"
print(str.endswith(suffix))
print(str.endswith(suffix,8,11))
suffix='K'
print(str.endswith(suffix,0,1))
start参数以0为第一个字符索引值
end参数以1为第一个字符索引值
expandtabs(tabsize=8)
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
str = "this is\tstring example....wow!!!"
print ("原始字符串: " + str)
print ("替换 \\t 符号: " + str.expandtabs())
print ("使用16个空格替换 \\t 符号: " + str.expandtabs(16))
str="Kobe\t bryant"
print(str.expandtabs(16))#用16个空格替换\t
\t 解释补充
-
\t 是补全当前字符串长度到8的整数倍,最少 1 个最多 8 个空格。
-
补多少要看你 \t 前字符串长度。
-
比如当前字符串长度 10,那么 \t 后长度是 16,也就是补 6 个空格。
-
如果当前字符串长度 12,此时 \t 后长度是 16,补 4 个空格。
find(str,beg=0,end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
参数
- str – 指定检索的字符串
- beg – 开始索引,默认为0。
- end – 结束索引,默认为字符串的长度。
str1="abcdefg"
str2="d"
print(str1.find(str2))
print(str1.find(str2,0,3))
print(str1.find(str2,0,4))
print(str1.find(str2,5,6))
index(str, beg=0, end=len(string))
跟find()方法一样,只不过如果str不在字符串中会报一个异常.
str1="abcdefg"
str2="d"
print(str1.index(str2))
print(str1,index(str2,0,3))
10~17归纳如下:
实例演示:
str="Kobe24"
print(str.isalnum())
str1="Kobe "
print(str1.isalnum())#检查是否由字母和数字组成
print(str.isalpha())
print(str1.isalpha())#检查是否都是字母或文字组成
str2="123456"
print(str2.isdigit())
print(str1.isdigit())#检查是否只由数字组成
str3="kobe"
print(str3.islower())
print(str.islower())#检测字符是否由小写字母组成
str4="123四56½"
print(str2.isnumeric())#检查是否只由数字组成,数字可以是Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
str5=" "
print(str5.isspace())#判断是否只由空格组成,空格符包含空格、制表符(\t)、换行(\n)、回车(\r)
str6="Kobe Bryant"
print(str6.istitle())#检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
str7="ACM"
print(str7.isupper())#检测字符串中所有的字母是否都为大写。
注意:
- 数字可以是Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
- 空格符包含空格、制表符(\t)、换行(\n)、回车(\r)
输出:
18~25归纳如下:
实例演示:
s1="-"
s2=""
seq=("K","o","b","e")
print(s1.join(seq))
print(s2.join(seq))#将序列中的元素以指定的字符链接成一个新的字符串
str="Kobe bryant"
list=[1,2,3,4,5]
print(len(list))
print(len(str))#返回对象(字符串、列表、元组的长度)
print(str.ljust(2))
print(str.ljust(50,"*"))#返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
print(str.lower())#把所有大写字母转换成小写字母
str1=" Kobe "
print(str1.lstrip())
print(str.lstrip('K'))#用于截掉字符串左边的空格或指定字符
print(max(str))#返回字符串中最大的字母
print(min(str))#返回字符串中最小的字母
其中第23个:maketrans()
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
- intab – 字符串中要替代的字符组成的字符串。
- outtab – 相应的映射字符的字符串。
intab="asdfgh"
outtab="123456"
transtab=str.maketrans(intab,outtab)
str="asdfghjkl"
print(str.translate(transtab))
创建字符映射字典
26~30归纳如下:
replace()
方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。rfind()
返回字符串最后一次出现的位置,如果没有匹配项则返回-1。rindex()
返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。rjust()
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。rstrip()
删除 string 字符串末尾的指定字符(默认为空格).
实例演示:
#replace
str="Kobe"
print(str.replace("Kobe","James"))#旧的换新的
str = "this is string example....wow,is!!!"
print (str.replace("is", "was", 3))#次数可以换
#rfind
str1 = "this is really a string example....wow!!!"
str2 = "is"
print (str1.rfind(str2))
print (str1.rfind(str2, 0, 10))
print (str1.rfind(str2, 10, 0))
print (str1.find(str2))
print (str1.find(str2, 0, 10))
print (str1.find(str2, 10, 0))
#rindex
str1 = "this is really a string example....wow!!!"
str2 = "is"
print (str1.rindex(str2))
print (str1.rindex(str2,10))
#rjust
str = "this is string example....wow!!!"
print (str.rjust(50, '*'))
#rstrip
str = " this is string example....wow!!! "
print (str.rstrip())
str = "*****this is string example....wow!!!*****"
print (str.rstrip('*'))
对31~40做以下归纳:
split(str="",num=string.count(str) )
通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
实例演示:
str = "this is string example....wow!!!"
print (str.split( )) # 以空格为分隔符
print (str.split('i',2)) # 以 i 为分隔符
print (str.split('w')) # 以 w 为分隔符
num是出现的次数
splitlines(keepends)
按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
- keepends – 在输出结果里是否去掉换行符(’\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。
startswith(substr, beg=0,end=len(string))
检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
str = "this is string example....wow!!!"
print (str.startswith( 'this' )) # 字符串是否以 this 开头
print (str.startswith( 'string', 8 )) # 从第八个字符开始的字符串是否以 string 开头
print (str.startswith( 'this', 2, 4 )) # 从第2个字符开始到第四个字符结束的字符串是否以 this 开头
strip([chars])在字符串上执行 lstrip()和 rstrip()
用于移除字符串头尾指定的字符(默认为空格)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
str = "*****this is **string** example....wow!!!*****"
print (str.strip( '*' )) # 指定字符串 *
str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12
- strip() 处理的时候,如果不带参数,默认是清除两边的空白符,例如:/n, /r, /t, ’ ')。
- strip() 带有参数的时候,这个参数可以理解一个要删除的字符的列表,是否会删除的前提是从字符串最开头和最结尾是不是包含要删除的字符,如果有就会继续处理,没有的话是不会删除中间的字符的。
如:
- 注意删除多个字符时:只要头尾有对应其中的某个字符即删除,不考虑顺序,直到遇到第一个不包含在其中的字符为止。
swapcase()
将字符串中大写转换为小写,小写转换为大写
str="kobe Bryant"
print(str.swapcase())
title()
返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
str = "this is string example from runoob....wow!!!"
print (str.title())
translate(table, deletechars="")
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
语法为:
str.translate(table)
bytes.translate(table[, delete])
bytearray.translate(table[, delete])
- table – 翻译表,翻译表是通过 maketrans() 方法转换而来。
- deletechars – 字符串中要过滤的字符列表。
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab) # 制作翻译表
str = "this is string example....wow!!!"
print (str.translate(trantab))
# 制作翻译表
bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
# 转换为大写,并删除字母o
print(b'runoob'.translate(bytes_tabtrans, b'o'))
upper()
upper()转换字符串中的小写字母为大写
str="kobe Bryant"
print(str.upper())
zfill (width)
返回长度为 width 的字符串,原字符串右对齐,前面填充0
str = "this is string example from runoob....wow!!!"
print ("str.zfill : ",str.zfill(40))
print ("str.zfill : ",str.zfill(50))
- zfill(width) 作用同 rjust(width,“0”)
str = "this is string example from runoob....wow!!!"
print(str.zfill(50));print(str.rjust(50,"0"))
isdecimal()
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。这种方法只存在于unicode对象。
- 注意:定义一个十进制字符串,只需要在字符串前添加 ‘u’ 前缀即可。
str = "10086"
str1="ACM1008611"
print (str.isdecimal())
print(str1.isdecimal())
终于完了!!!
来源:CSDN
作者:ker.
链接:https://blog.csdn.net/weixin_45895026/article/details/104114002