4.字符串
4.1 转义字符
#转义字符
>>> print("\"读万卷书\"\n\"行万里路\"")
"读万卷书"
"行万里路"
#单双引号合用
>>> print('"读万卷书"\n"行万里路"')
"读万卷书"
"行万里路
4.2 字符串格式化
4.2.1 百分号(%)
>>> print("今天是星期%s" % 5)
今天是星期5
>>> print("话费余额为%f" % 5.09)
话费余额为5.090000
>>> print("话费余额为%.1f" % 5.09)
话费余额为5.1
>>> print("话费余额为%10.1f" % 5.09)
话费余额为 5.1
#获取前5个字符
>>> print("字符精度获取%.5s" % ("hello python"))
字符精度获取hello
4.2.2 元组的字符串格式化
占位符个数和元组个数要相等;
若使用列表代替元组,列表仅代表一个值。
#占位符个数和元组个数要相等
>>> print("今天是周%d,我要去%s,花了%.2f元" % (5,"游乐场",6.322))
今天是周5,我要去游乐场,花了6.32元
#列表代替元组
>>> print("今天是周%s" % [5,"游乐场",6.322])
今天是周[5, '游乐场', 6.322]
#使用*作为字段宽度或精度(或两者都用*),数值会从元组中读出。
>>> print("从元组中获取精度%*.*f" % (10,5,10.111111))
从元组中获取精度 10.11111
4.2.3 format字符串格式化
用一个点号连接字符串和格式化值,多于一个的格式化值需要用元组表示。字符串中,带格式化的占位符用花括号({})表示。
>>> print("{}年冬奥会将在{}举行".format(2022,"北京"))
2022年冬奥会将在北京举行
>>> print("{year}年冬奥会将在{adress}举行".format(adress="北京",year=2022))
2022年冬奥会将在北京举行
4.2.4 f字符串格式化
f字符串格式化包含了由花括号括起来的替换字段,替换字段是表达式,它们会在运行时计算,然后使用format()协议进行格式化
>>> year=2022
>>> adress="北京"
>>> print(f'{year}年冬奥会会在{adress}举行')
2022年冬奥会会在北京举行
4.3 字符串方法
4.3.1 split()方法
split()方法通过指定分割符对字符串进行切片。
如果参数num有指定值,就只分割num个子字符串。
>>> test="stay folish stay hunguy"
>>> test.split()
['stay', 'folish', 'stay', 'hunguy']
>>> test.split("s")
['', 'tay foli', 'h ', 'tay hunguy']
>>> test.split("s",2)
['', 'tay foli', 'h stay hunguy']
4.3.2 strip()方法
strip()方法用于移除字符串头尾指定的字符。
strip()方法有返回结果,返回结果是字符串移除头尾指定的字符后所生成的新字符串。
若不指定字符,则默认为空格。
>>> test="--stay-folish-stay-hunguy--"
>>> test.strip("-")
'stay-folish-stay-hunguy'
strip()方法只移除字符串头部和尾部能匹配到的字符,中间的字符不会移除
4.3.3 join()方法
join()方法用于将序列中的元素以指定字符串连接成一个新字符串。
#元组
>>> test=("stay","foolish","stay","hungry")
>>> test1="+".join(test)
>>> test1
'stay+foolish+stay+hungry'
#列表
>>> test
['stay', 'foolish', 'stay', 'hungry']
>>> test1="aaa".join(test)
>>> test1
'stayaaafoolishaaastayaaahungry'
join()方法只能对字符串元素进行连接,用join()方法进行操作时,调用和被调用的对象必须都是字符串,任意一方不是字符串,最终操作结果都会报错。
4.3.4 find()方法
find()方法用于检测字符串中是否包含指定的子字符串。
返回结果为匹配字符串所在位置的最左端索引下标值,如果没有找到匹配字符串,就返回-1。
>>> test="stay foolish,stay hungry"
>>> test.find("foolish")
5
>>> test.find("aaa")
-1
4.3.5 lower()方法
lower()方法用于将字符串中所有大写字母转换为小写。
>>> field='DO IT NOW'
#field字符串不转换为小写字母,找不到匹配字符串
>>> field.find('It')
-1
#field字符串先转换为小写字母,但It不转为小写字母,找不到匹配字符串
>>> field.lower().find('It')
-1
#都使用lower()方法转换成小写字母后查找
>>> field.lower().find('It'.lower())
3
4.3.6 upper()方法
upper()方法用于将字符串中的小写字母转换为大写字母。
>>> field='do it now'
>>> field.find("IT")
-1
>>> field.upper().find("IT")
3
4.3.7 replace()方法
replace()方法用于做字符串替换。
>>> test="aaa,bb,aa,ccc,cc"
>>> test.replace("aa","111")
'111a,bb,111,ccc,cc
>>> test.replace("aa","111",1)
'111a,bb,aa,ccc,cc
使用replace()方法时,若不指定第3个参数,则字符串中所有匹配到的字符都会被替换;若指定第3个参数,则从字符串的左边开始往右进行查找匹配并替换,达到指定的替换次数后,便不再继续查找,若字符串查找结束仍没有达到指定的替换次数,则结束。
4.3.8 swapcase()方法
swapcase()方法用于对字符串中的大小写字母进行转换,将字符串中的大写字母转换为小写字母、小写字母转换为大写字母。
>>> test="AAA,bb,aa,CCc,cc"
>>> test.swapcase()
'aaa,BB,AA,ccC,CC'
4.3.9 translate()方法
>>> intab='adefs'
>>> outtab='12345'
>>> trantab=str.maketrans(intab,outtab)
>>> st='just do it'
>>> st.translate(trantab)
ju5t 2o it