Python3之字符串

Python3之字符串

基础内容

  • 创建:为变量分配一个值即可
    • 单行:‘xxx’ 或 “xxx”
    • 多行:""" 或 ‘’’
  • 访问:使用方括号来截取字符串,var[i], var[:]
  • 不支持单字符类型,单字符也作为一个字符串
  • 所有字符串都是 Unicode 字符串

转义字符

在字符串中使用特殊字符时,用反斜杠 \ 转义字符

转义字符 描述
\(在尾行时) 续行符
\\ 反斜杠
\’ 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy 代表的字符,如 \o12代表换行
\xyy 十六进制数, yy 代表的字符
\other 其它的字符以普通格式输出

运算符

操作符 描述
+ 连接
* 重复
[] 通过索引获取字符
[ : ] 截取一部分,[start, end),[:]表示全部
in 包含给定字符返回True
not in 不包含给定字符返回False
r/R 原始字符串,没有转义特殊或不能打印的字符, r"xxx", r’xxx’
% 格式字符串

格式化

将一个值插入到一个有字符串格式符的字符串中
“xxxxxx” % (xx, xx, …)

  • 格式化符号:
符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x, %X 格式化无符号十六进制数
%f 格式化浮点数字,可指定小数精度
%e, %E 用科学计数法格式化浮点数
%g %f 和 %e 的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址
  • 辅助指令
符号 描述
* 定义宽度或者小数点精度
- 左对齐
+ 在整数前面显示加号(+)
< sp > 在整数前面显示空格
# 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0 显示的数字前面填充’0’
% ‘%%‘输出一个单一的’%’
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

其它:格式化字符串的函数 str.format(),通过 {} 和 : 代替 %

内建函数

  • len(str)
    • 字符串长度
  • max(str)
    • 返回字符串中的最大字符(ASCII码最大)
  • min(str)
    • 返回字符串中的最小字符(ASCII码最小)

大小写相关:

  • str.capitalize()
    • 首字符大写,其它小写
    • 若首字符非字符,则全转成小写
  • str.lower()
    • 转换所有大写字符为小写
  • str.swapcase()
    • 对字符串的大小写字母进行转换
  • str. title()
    • 所有单词都首字母大写,其它小写
  • str.upper()
    • 将字符串中的小写字母转为大写字母

填充、截取相关:

  • str.center(width, fillchar)
    • 返回指定宽度 width 居中的字符串
    • width < len(str),则返回 str
    • 使用 fillchar 填充,默认为空格
    • fillchar 为单字符
  • str.ljust(width[, fillchar])
    • 字符串左对齐,使用字符填充至指定长度
    • width < len(str), 则返回原字符串
    • fillchar:填充字符,默认为空格
  • str.rjust(width [, fillchar])
    • 字符串右对齐,使用字符填充至指定长度
    • width < len(str), 则返回原字符串
    • fillchar:填充字符,默认为空格
  • str.zfill(width)
    • 返回指定长度的字符串,原字符串右对齐,前面填充0
    • width < len(str), 则返回原字符串
    • 等同 str.rjust(width, “0”)
  • str.lstrip([chars])
    • 截掉字符串左边的空格或指定字符
  • str.rstrip([chars])
    • 截掉字符串右边的空格或指定字符
  • str.strip([chars])
    • 截掉字符串头尾指定的字符,默认为空格

查找相关:

  • str.count(sub, start=0, end=len(str))
    • 统计字符串里某字符出现的次数
    • sub 搜索的子字符串
  • str.startswidth(suffix, start=0, end=len(str))
    • 判断是否以指定后缀开头
    • suffix:一个字符串或一个元素
  • str.endswith(suffix, start=0, end=len(str)
    • 判断是否以指定后缀结尾
    • suffix:一个字符串或一个元素
  • str.find(str, start=0,end=len(str))
    • 检测是否包含子串
    • 包含则返回起始位置的索引,否则返回 -1
  • str.rfind(sub, start=0, end=len(str))
    • sub:查找的字符串
    • 返回最后一次出现的位置,没有则返回 -1
  • str.index(str, beg=0,end=len(string))
    • 作用同 find()
    • 不包含时抛出异常

替换相关:

  • str.expandtabs(tabsize=8)
    • 把字符串中的 tab 符号(’\t’)转为空格
  • str.replace(old, new [, max])
    • 将old替换成new, 不超过max次

连接、分隔:

  • str.join(seq)
    • 将序列中的元素以指定的字符连接生成一个字符串
    • str:连接的字符
    • seq:要连接的序列,包括字符串(连接单字符)、集合、元组、字典(连接 key )
    • seq 中的元素必须是字符串,否则会报错
  • str.split(splitstr="", num=string.count(str))
    • 通过指定分隔符对字符串进行切片
    • splitstr:分隔符,默认为所有空字符,包括空格、换行、制表符
    • num:分割次数,分隔为 num+1 个子字符串
  • str.splitlines([keepends])
    • 按照行(’\r’, ‘\r\n’, ‘\n’)分隔
    • 返回一个包含各行作为元素的列表
    • keepends:是否保留换行符

判断组成:

  • str.isalnum()
    • 是否由字母和数字组成
    • 至少有一个字符,且都是字母和数字,返回 True
  • str.isalpha()
    • 是否只由字母组成
    • 至少有一个字符,且都是字母,返回 True
  • str.isdigit()
    • 是否只由数字组成
    • 至少有一个字符,且都是数字,返回 True
  • str.islower()
    • 是否由小写字母组成
    • 至少有一个区分大小写字符,且其都是小写字母,返回 True
  • str.isnumeric()
    • 是否只由数字组成,仅针对 unicode 对象
    • 至少有一个字符,且都是数字,返回 True
  • str.isdecimal()
    • 检查是否只包含十进制字符,仅对 unicode 对象
  • str.isspace()
    • 是否只由空白字符组成
  • str.istitle()
    • 是否所有单词拼写均为首字母大写,其它小写
  • str.isupper()
    • 是否所有字母都大写
    • 至少一个区分大小的字符,且其都是大写,返回 True

编码相关:

  • bytes.decode(encoding=“utf-8”, errors=“strict”)
    • 以指定的编码格式解码 bytes 对象
    • errors 的可能值:‘strict’, ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值
  • str.encode(encoding=‘UTF-8’, errors=‘strict’)
    • 以指定的编码格式编码 bytes 对象
    • errors 同 decode()

翻译替换:

  • (str 或 bytes 或 bytearray).marktrans(intab, outtab)
    • 创建字符映射的转换表
    • intab:字符串中要替代的字符组成的字符串
    • outtab:相应的映射字符的字符串
    • 两者长度相同,一一对应
  • (str 或 bytes 或 bytearray).translate(table[, delete])
    • 根据 table 给出的表转换字符串的字符,根据delete过滤字符
    • table:翻译表,通过maketrans()转换而来
    • delete:字符串中要过滤的字符列表
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)

str = "this is string example....wow!!!"
print (str.translate(trantab))          # th3s 3s str3ng 2x1mpl2....w4w!!!

内容来源:http://www.runoob.com/python3/python3-string.html

你可能感兴趣的:(python)