一、字符串的表示方式
(1)使用单引号表示。如:a='abcd'
(2)使用双引号表示。如:a="abcd"
(3)使用三个单(或双)引号表示。可以多行,通常表示注释或文档字符串。
二、字符串前辍
1、前辍r或R
字符串前辍为r或R,表示字符串中不使用转义字符。这时单数个反斜扛"\"不能在字符串的尾部。如:s=r"d:\mydatas\infs.txt"
2、前辍f或F
字符串前辍为f或F,表示字符串中使用了表达式(写在一对大括号中),使用方法请参考“f格式化字符串”部分。
3、前辍u或U
字符串前辍为u或U,表示字符串由Unicode字符组成。这是字符串的默认前辍,可以省略。
4、前辍b或B
字符串前辍为b或B,表示将字符串转换为bytes类型的字节串。这时字符串的字符只能是ASCII码字符。
三、字符转义
在字符串中,可以使用字符"\"对其后的字符进行转义,表示一些特殊的字符。常用的有:
\\:反斜扛。如:"d:\\datas\\infs.txt"即字符串r" d:\datas\infs.txt "
\':单引号。如:'It\'s a cat'即字符串"It's a cat"
\":双引号。如:"He say:\"Good\""即字符串'He say:"Good"'
\n:换行。用于输出多行数据。如:print("good\nfine\nHow are you")
\r:回车。返回到行的开始位置。在python IDLE调试窗口中忽略。
\0yy:ASCII码为八进制数yy对应的字符。如"\040"表示空格。(前导字符是数字0不是字母o)
\xyy:ASCII码为十六进制数yy对应的字符。如"\x41"表示字符"A"。
\uyyyy:表示编码值为0xyyyy的Unicode字符。如:"\u7231\u6211\u4e2d\u534e"(即"爱我中华")
四、字符串索引
可以利用索引标识字符串的字符位置。有两种索引方式:
1、左索引
从左到右每个字符的索引依次为0,1,2,...。设s="abcd",则字符"a"的左索引为0,字符"d"的左索引为3。
2、右索引
从右到左每个字符的索引依次为-1,-2,-3,...。设s="abcd",则字符"a"的右索引为-4,字符"d"的右索引为-1。
如:a=s[-2]
特别提示:
(1)左索引、右索引统称为索引。在一个字符串中,每个字符有二个索引值。如"abcd"中,字符"a"的索引值为0和-4。
(2)利用索引,可以方便得到字符串的字符。如:s="abcd",则s[0]的值为"a",s[-1]的值为"d"。
五、字符串切片
利用字符串切片,可以方便地从字符串中提取字符。
1、切片格式
切片格式:s[a:b:c]
提取字符流程:
(1)根据a确定提取字符的开始索引。缺省时为0(c>0时)或-1(c<0时)。
注意:c必须是非零整数。c的缺省值为1。
(2)根据b确定提取字符的结束索引。b缺省时:如果c>0,表示可提取s[a]及其右侧的全部字符;如果c<0,表示可提取s[a]及其左侧的全部字符。
(3)如果s[a]不在位置b的左侧(c>0时)或右侧(c<0时),转步骤(6)
(4)提取字符s[a]
(5)a=a+c,转步骤(3)
(6)结束。
2、应用示例
设a="abcde",则:
(1)a[1:3]的值为"bc"。等效于a[1:3:1]。即从左至右提取字符,提取字符的开始索引为1,终止字符的索引为3。每提取一个字符,索引值加1。
(2)a[1:4:2]的值为"bd"。从左至右提取字符,提取字符的开始索引为1,终止字符的索引为4。每提取一个字符,索引值加2。
(3)a[2:]的值为"cde"。等效于a[2::1]。即从左至右提取字符,提取字符的开始索引为2,取完为止。每提取一个字符,索引值加1。
(4)a[:-2]的值为"abc"。等效于a[0:-2:1]。即从左至右提取字符,提取字符的开始索引为0,终止字符的索引为-2。每提取一个字符,索引值加1。
(5)a[::-1]的值为"edcba"。等效于a[-1::-1]。即从右至左提取字符,提取字符的开始索引为-1,取完为止。每提取一个字符,索引值加-1。
六、字符串的基本操作
1、字符串的大小比较
字符串比较大小是从左至右逐字符比较。默认情况下,字符是按字符的ord函数值来比较大小的。如:"a">"A"、"3">"10"。
比较运算符有:>、>=、<、<=、==、!=。
2、字符串的运算
(1)利用"+"运算符可以将两个字符串连接成一个字符串。如:a="abc"+"def"
(2)整数与字符串可进行"*"运算,实现字符串的重复。如:a="k"*3等效于a="kkk"。
(3)利用成员运算符"in"和"not in"可判断一个字符串是否在另一个字符串中。如:"a" in "abc"返回值为True;"d" in "abc"返回值为False。
七、f格式化字符串
字符串使用f(或F)前辍,可实现字符串的格式化。其作用是:字符串中使用表达式(写在一对大括号"{ }"中),表达式的值才是字符串的组成部分。
1、格式
{ content:format }
2、说明
(1)content是一个Python表达式,可以是常量、变量、函数值及其运算。
(2)format是格式描述符。包括:
对齐方式:<、>、^分别表示左、右和居中对齐。
数字符号:+(数字前加+)、-(正数前不加+)、空格(正数前加空格)
数字显示方式:#。表示输出二进制、八进制或十六进制数时前面加上前缀0b、0o或0x(0X)。
宽度:m。一个正整数,表示输出的最小宽度,不足补空格。如果以0开头,则不足补0。
精度:.n。n为整数,对于字符串,表示从左侧截取的字符数。对于实数,表示四舍五入保留的小数点后位数。
千位分隔符:","或"_"。
类型码:f(实数)、d(十进制整数)、b(二进制整数)、o(八进制整数)、x(或X,十六进制整数)、s(字符串)。
百分比:%。将实数转换为百分比表示。
3、示例(设a=123、b=1.34567、s="abcdefg"、n=2)
(1)f"{a:#x}"的值为'0x7b'、f"{a:4d}"的值为'0123'、f"{a:X}"的值为'7B'、f"{a:#b}"的值为'0b1111011'。
(2)f"{b:.2f}"的值为'1.35'、f"{b:6.2f}"的值为' 1.35'、f"{b:06.2f}"的值为'001.35'、f"{b:.1%}"的值为'134.6%'、f"{b:.{n}%}"的值为'134.57%'。
(3)f"{s:.3s}"的值为'abc'。
八、字符串内置函数
字符串为str对象,其常用内置函数(也称为内置方法)有:
1、capitalize( ):字符串首字符大写。
2、count(str,beg,end):返回str出现的次数。beg(缺省值为0)、end(缺省时为beg右侧的全部字符)指定统计的字符的索引范围。不包括end索引字符。
3、find(s,beg,end):从左至右搜索字符串s,并返回出现的位置索引。如果s不在字符串中,则返回-1。beg(缺省值为0)、end(缺省时为beg右侧的全部字符)指定搜索字符的索引范围,不包括end索引字符。如:s="abcabc",则s.find("a",1,-1)的返回值为3。
4、rfind(s,beg,end):类似find函数,但是从右至左搜索字符串。
5、index(s,beg,end):类似find函数,但s不在字符串中时会触发异常。
6、rindex(s,beg,end):类似index函数,但是从右至左搜索字符串。
7、lower():转换所有大写字符为小写。
8、replace(str1,str2,num):把str1替换成str2,num指定替换次数(默认全部替换)。如:s="abc",则s.replace("a","good")的值为"goodbc"。
9、split(str,num):以str为分隔符(默认空格)将字符串分割为列表。num指定分割次数(默认全部分割)。如:s="3,5",则s.split(",")的值为["3","5"]。
10、upper( ):小写字母转大写。

