数据类型
字符串 str
格式
- 单引号
- 双引号
- 三引号 多行. 利用其特点,可用于注释
1. 切片(同列表)
使用[M:N:K]根据步长对字符串切片
M 缺失表示至开头
N 缺失表示至结尾
K 缺失表示步长1
正向递增序号
- 'hello world'[:5] == 'hello'
反向递减序号
- 'hello world'[-5:] == 'world'
步长
- '1234567890'[::2] == '13579'
- 步长为负, 反转字符串
- '1234567890'[::-1] == '0987654321'
2. 转义符
- (在行尾时) 续行符
- \\ 反斜杠符号
- ' 单引号
- " 双引号
- \b 退格(Backspace,光标向前退一格)
- \000 空
- \n 换行(光标移动到下行首)
- \r 回车(光标移动到本行首)
- \t 横向制表符
- \a 响铃
- \e 转义
- \v 纵向制表符
- \f 换页
- \oyy 八进制数,yy代表的字符,例如:\o12代表换行
- \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
- \other 其它的字符以普通格式输出
3. 字符串操作符
x + y
- 连接两个字符串x和y
n*x 或 x*n
- 复制n次字符串x
x in s
- 如果x是s的子串, 返回True, 否则返回False
4. 字符串处理函数
len(x)
- 长度, 返回字符串x的长度
- len("一二三456") 结果为6
str(x)
- 任意类型x所对应的字符串形式
- str(1.23) 结果为"1.23"
- str([1, 2]) 结果为"[1, 2]"
hex(x)
- 整数x的十六进制小写形式字符串
- hex(425) 结果为"0x1a9"
oct(x)
- 整数x的八进制小写形式字符串
- oct(425) 结果为"0o651"
chr(u)
- u为Unicode编码, 返回其对应的字符
ord(x)
- x为字符, 返回其对应的Unicode编码
str.lower()
- 返回字符串的副本, 全部字符小写
- 'AbcDeF'.upper() 结果为"abcdef"
str.upper()
- 返回字符串的副本, 全部字符大写
- 'AbcDeF'.upper() 结果为"ABCDEF"
str.split(sep=None)
- 返回一个列表, 由str根据sep被分割的部分组成
- "A,B,C".split(",") 结果为['A', 'B', 'C']
str.count(sub)
- 返回子串sub在str中出现的次数
- "a apple a day".count("a") 结果为4
str.replace(old, new)
- 返回字符串str副本, 所有old子串被替换为new
- "python".replace("n", "n123") 结果为"python123"
str.center(width, fillchar=" ")
- 字数串str根据宽度width居中, fillchar可选
- "python".center(10,'=') 结果为'==python=='
str.strip(chars)
- 从str中去掉在其左侧和右侧,chars中列出的字符
- "== python ==".strip(" =pn") 结果为"ytho"
str.join(iter)
- 主要用于字符串分割
- 在iter变量除最后元素外每个元素后增加一个str
- ",".join("12345") 结果为 "1,2,3,4,5"
5. 字符串格式化
"{0} / {1} / {2}".format(2018, 10, 24)
>> 2018 / 10 / 24
{序号} 为槽
槽的内部对格式化的配置方式
{<参数序号>:<格式控制标记>}
:<填充>|<对齐>|<宽度>|<,>|<.精度>|<类型>
填充
- 用于填充的单个字符
对齐
- < 左对齐
- > 右对齐
- ^ 居中对齐
宽度
- 槽设定的输出宽度
,(逗号)
- 数字的千位分隔符
.精度
- 浮点数小数精度 或 字数串最大输出长度
类型
- 整数类型
- b
- c
- d
- o
- x
- X
- 浮点数类型
- e
- E
- f
- %
示例
"{0:=^50,.3f}".format(500000.12345)
'===================500,000.123===================='
- 0 序号
- = 填充
- ^ 居中对齐
- 50 宽度50
- , 千位分割
- .3 保留3为小数
- f 浮点类型