str 是 [[Python]] 的内置类型,用于表示和操作字符串。字符串是由 Unicode 码位构成的不可变序列,可以通过 .encode() 方法编码为 bytes。
写法
- 单引号:
'允许包含有 "双" 引号' - 双引号:
"允许嵌入 '单' 引号" - 三重引号:
'''三重单引号''',"""三重双引号"""可跨行
方法
大小写操作
.lower(): 转换为小写;.upper(): 转换为大写;.casefold(): 比.lower()更加彻底的版本,比较少用;.capitalize(): 首字母转换为大写;.title(): 每个单词的首字母转换为大写;.swapcase(): 反转大小写;
.title()
可以把字符串中每个单词的首字母转换为大写:
"hello python!".title()# 返回: Hello Python!但是这个方法有个弊端,当存在 ’ 时,也会将其转换为大写:
"they're bill's friends from the UK".title()# 返回: "They'Re Bill'S Friends From The Uk"不过可以用 [[Python/librarys/string]] 替代。
拆分与合并
.split(): 把字符串拆分成列表;.rsplit(): 从右边开始把字符串拆分成列表;.splitlines():.partition():.rpartition():.join():
.split()
把字符串拆分成列表:
语法:
str.split(sep=None, maxsplit=-1)
- sep: 以 sep 作为分隔字符串;
- maxsplit: 指定拆分次数(默认不限制);
"Hello, World".split(",") # 返回 ['Hello', ' World'].partition()
语法:
str.partition(sep)
- sep: 以 sep 作为分隔字符串;
在 sep 首次出现的位置拆分字符串,返回一个 3 元组,其中包含分隔符之前的部分、分隔符本身,以及分隔符之后的部分。如果分隔符未找到,则返回的 3 元组中包含字符本身以及两个空字符串。
"key:value".partition(":") # 返回 ('key', ':', 'value')"key".partition(":") # 返回 ('key', '', '')搜索和替换
- .find():
- .rfind():
- .index():
- .rindex()
- .startswith():
- .endswith():
- .cound():
- .replace():
.startswith()
开头匹配,如果匹配返回 True。
语法:startswith(substr, beg, end)
str = 'Hello, world'str.startswith('He')str.startswith('o', 4)# 支持匹配多个,必须以元组形式传入str.startswith(('H', 'Z')).endswith()
结尾匹配,如果匹配返回 True。
语法:endswith(substr, beg, end)
.replace()
语法:
.replace(old, new[, max])
对指定字符进行替换,并返回替换后的数据。
填充和去除
- .ljust()
- .rjust():
- .center():
- .expandtabs():
- .strip():
- .lstrip():
- .rstrip():
字符串分类
- .isalpha():
- .isdecimal():
- .isdigit(): 判断字符串是否只包含数字,如果是返回 True;
- .isnumeric():
- .isalnum():
- .isalnum():
- .isidentifier():
- .islower()
- .isupper()
- .istitle()
- .isspace():
- .isprintable()
转写和编码格式
- .encode(): 返回编码为 bytes 的字符串;
.translate()
按规则一次性替换多个字符。
str.translate(table)- table: 需要先使用 [[str]] 创建一个翻译表;
s = "中英文字符替换,.!"table = s.maketrans(",.", ",。")s.translate(table)maketrans 中第一个参数是需要要替换的符号,第二个参数才是对应的符号;如果传入第三个参数,可以实现删除,而不是替换:
s = "符号删除,.!"table = s.maketrans("", "", ",.")s.translate(table) # 返回:符号删除!.encode()
返回编码为 bytes 的字符串,默认编码为 utf-8,完整编码可参考 [[codecs]]。
str.encode(encoding='utf-8', errors='strict')- encoding: 编码格式,默认是
utf-8 - errors: 如何处理编码错误;
- -strict: 引发
UnicodeError
- -strict: 引发
"hello, world.".encode()# 返回: b'hello, world.'