1、字符串的表示方法
- 由一对单引号或双引号表示,仅表示单行字符串
“请输入一个数” 或者 ‘C’
- 由一对三单引号或三双引号表示,可表示多行字符串
三引号不是多行注释吗?
实际上在Python中并没有提供多行注释的方法,三单引号就是一个字符串,只是这个字符串没有赋值给变量,没有进行任何操作,可以当作注释来操作。
2、字符串的序号
3、字符串的使用
- 索引:返回字符串的单个字符。 <字符串>[M]
- 切片:返回字符串中一段字符字串。 <字符串>[M:N]
4、字符串切片的高级用法
- <字符串>[M:N],M缺失表示至开头,N缺失表示至结尾
“O一二三四五六七八九十”[:3] 结果是 “O一二”
- <字符串>[M:N:K],根据步长K对字符串切片
“O一二三四五六七八九十”[1:8:2] 结果是 “一三五七”
“O一二三四五六七八九十”[::-1] 结果是 “十九八七六五四三二一O” #完成逆序
5、字符串的特殊字符
- “\b” 回退
- “\n” 换行(光标移动到下行首)
- “\r” 回车(光标移动到本行首)
6、字符床操作符
x+y #链接两个字符串x和y
n*x 或 x*n #复制n次字符串x
x in s #如果x是s的子串,返回True,否则返回False
7、字符串处理函数
len(x) #长度,返回字符串x的长度
len("一二三567") 结果为6
str(x) #任意类型x所对应的字符串形式
str(1.23)结果为 "1.23" str([1,2]) 结果为"[1,2]"
hex(x) 或 oct(x) #整数x的十六进制或八进制小写形式字符串
hex(425) 结果是 "0x1a9" oct(425) 结果为 "0o651"
chr(u) #x为Unicode编码,返回其对应的字符
ord(x) #x为字符,返回其对应的Unicode编码
8、Unicode编码
Python字符串的编码方式
- 统一字符编码,即覆盖几乎所有字符的编码方式
- 从0到1114111(0x10FFFF)空间,每个编码对应一个字符
- Python字符串中每个字符都是Unicode编码字符
9、字符串处理方法
- 方法特指< a >.< b >()风格中的函数 < b >()
- 方法本身也是函数,但与< a >有关,< a >.< b >()风格使用
str.lower()或str.upper() #返回字符串的副本,全部字符小写/大写
"AbCdEfGh".lower() 结果为"abcdefgh"
str.split(sep=None) #返回一个列表,有str根据sep被分隔的部分组成
"A,B,C".split(",") 结果为['A','B','C']
str.count(sub) #返回子串sub在str中出现的次数
"an apple a day".count("a") 结果为4
str.replace(old,new) #返回字符串str副本,所有old子串被替换成new
"Python".replace("n","n123.io") 结果为"Python123.io"
str.center(width[,fillchar]) #字符串str根据宽度width居中,fillchar可选
"Python".center(20,"=") 结果为'=======Python======='
str.strip(chars) 从str中去掉其左侧和右侧chars中列出的字符
"= pythonpython= ".strip(" =np") 结果为 "ythonpytho"
str.join(iter) #在iter变量除最后元素外每个元素后增加一个str
",".join("12345") 结果是 "1,2,3,4,5" #主要用于字符串分隔等
10、字符串类型的格式化
- 字符串格式化使用.format()
< 模板字符串 >.format (< 逗号分隔的参数 >) - 槽
1)可以不按0,1,2…的顺序写
2)可以写多个相同的
format()方法的格式控制
(1):引导符号
(2)< 填充 > 用于填充某个字符
(3)< 对齐 > <左对齐,>右对齐,^居中对齐
(4)< 宽度 > 槽设定的输出宽度
"{0:=^20}".format("PYTHON")
则:'=======PYTHON======='
{0:*>20}.format("BIT")
则:'*****************BIT'
"{:10}".format("BIT")
'BIT '
以上三种是一类,三个同时出现时,即按填充,对齐,宽度的顺序设定。
(5)< , > 数字的千位分隔符
(6)< .精度 > 浮点数小数精度或字符串最大输出长度
(7)< 类型 > 整数类型b,c,d,o,x,X 浮点数类型 e,E,f,%
"{0:,.2f}".format(12345.6789)
则:'12,345.68'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
则:'110101001,Ʃ,425,651,1a9,1A9'
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
则:'3.140000e+00,3.140000E+00,3.140000,314.000000%'
补充:
1、每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成
其工作。这种信息是在括号内提供的。函数title() 不需要额外的信息,因此它后面的括号是空的。
title() 以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。
2、Python能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法rstrip()
>>>favorite_language = 'python '
>>>favorite_language
>'python '
>>>favorite_language.rstrip() #删除只是暂时的
>'python'
>>>favorite_language
>'python '
3、还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip() 和strip()
>>>favorite_language = ' python '
>>>favorite_language
>' python '
>>>favorite_language.lstrip() #删除只是暂时的
>'python '
>>>favorite_language.strip() #同时剔除两边的空格
>'python'