跳转至

字符串 str

字符串概述

字符串本身属于序列,字符串的声明: a = "123" ,通过引号包裹的就是字符串。

Python
1
2
3
# 判断回文数,通过条件表达式进行判断
a = "12321"
print("是回文数") if a == a[::-1] else print("不是回文数")

字符串常用函数

方法 含义
capitalize() 返回一个首字母大写版本的新字符串(新字符串的首字母变为大写,其它字母变为小写)
casefold() 返回一个小写版本的新字符串(新字符串的所有字母变为小写)
center(width, fillchar=' ') 返回一个字符居中的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符居中,左右使用 fillchar 参数指定的字符填充)
count(sub[, start[, end]]) 返回 sub 在字符串中不重叠的出现次数,可选参数 start 和 end 用于指定起始和结束位置
encode(encoding='utf-8', errors='strict') 以 encoding 参数指定的编码格式对字符串进行编码。errors 参数指定编码出现错误时的解决方案:默认的 'strict' 表示如果出错,将抛出一个 UnicodeEncodeError 的异常。其它可用的参数值是 'ignore','replace' 和 'xmlcharrefreplace'
endswith(suffix[, start[, end]]) 如果字符串是以 suffix 指定的子字符串为结尾,那么返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置;suffix 参数允许以元组的形式提供多个子字符串
expandtabs([tabsize=8]) 返回一个使用空格替换制表符的新字符串,如果没有指定 tabsize 参数,那么默认 1 个制表符 = 8 个空格
find(sub[, start[, end]]) 在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1
format(*args, **kwargs) 返回一个格式化的新字符串;使用位置参数(args)和关键字参数(kwargs)进行替换
format_map(mapping) 返回一个格式化的新字符串;使用映射参数(mapping)进行替换
index(sub[, start[, end]]) 在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常
isalnum() 如果字符串中至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
isalpha() 如果字符串中至少有一个字符并且所有字符都是字母(注 1)则返回 True,否则返回 False
isascii() 如果字符串中所有字符都是 ASCII 则返回 True,否则返回 False;ASCII 字符编码范围是 U+0000 ~ U+007F,空字符串也是 ASCII
isdecimal() 如果字符串中至少有一个字符并且所有字符都是十进制数字则返回 True,否则返回 False
isdigit() 如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False
isidentifier() 如果字符串是一个合法的 Python 标识符则返回 True,否则返回 False;调用 keyword.iskeyword(s) 可以检测字符串是否一个保留标识符(比如 "if" 或 "for")
islower() 如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是小写,则返回 True,否则返回 False
isnumeric() 如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False
isprintable() 如果字符串是可以打印的内容则返回 True,否则返回 False
isspace() 如果字符串中至少有一个字符并且所有字符都是空格,则返回 True,否则返回 False
istitle() 如果字符串是标题化字符串(所有的单词都是以大写开始,其余字母均小写)则返回 True,否则返回 False
isupper() 如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是大写,则返回 True,否则返回 False
join(iterable) 连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;例如:'^'.join(["F", "i", "sh", "C"]) -> 'F^i^sh^C'
ljust(width, fillchar=' ') 返回一个字符左对齐的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符左对齐,右侧使用 fillchar 参数指定的字符填充)
lower() 返回一个所有英文字母都转换成小写后的新字符串
lstrip(chars=None) 返回一个去除左侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
partition(sep) 在字符串中搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 ('在 sep 前面的部分', 'sep', '在 sep 后面的部分');如果未找到,则返回 ('原字符串', '', '')
removeprefix(prefix) 如果存在 prefix 参数指定的前缀子字符串,则返回一个将该前缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝
removesuffix(suffix) 如果存在 suffix 参数指定的后缀子字符串,则返回一个将该后缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝
replace(old, new, count=-1) 返回一个将所有 old 参数指定的子字符串替换为 new 的新字符串;count 参数指定替换的次数,默认是 -1,表示替换全部
rfind(sub[, start[, end]]) 在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1
rindex(sub[, start[, end]]) 在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常
rjust(width, fillchar=' ') 返回一个字符右对齐的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符右对齐,左侧使用 fillchar 参数指定的字符填充)
rpartition(sep) 在字符串中自右向左搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 ('在 sep 前面的部分', 'sep', '在 sep 后面的部分');如果未找到,则返回 ('', '', '原字符串')
rsplit(sep=None, maxsplit=-1) 将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
rstrip(chars=None) 返回一个去除右侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
split(sep=None, maxsplit=-1) 将字符串进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
splitlines(keepends=False) 将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含
startswith(prefix[, start[, end]]) 如果存在 prefix 参数指定的前缀子字符串,则返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置;prefix 参数允许以元组的形式提供多个子字符串
strip(chars=None) 返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
swapcase() 返回一个大小写字母翻转的新字符串
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table) 返回一个根据 table 参数转换后的新字符串;table 参数应该提供一个转换规则(可以由 str.maketrans('a', 'b') 进行定制,例如 "FishC".translate(str.maketrans("FC", "15")) -> '1ish5')
upper() 返回一个所有英文字母都转换成大写后的新字符串
zfill(width) 返回一个左侧用 0 填充的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符右对齐,左侧使用 0 进行填充)

字符串格式化输出

字符串在 Python3.6 使用, 语法: f"{}" ,括号跟变量名称也可以跟计算公式,如果跟变量需要提前声明变量。

Python
1
2
3
4
5
6
7
8
# 例一
a = 2017
print(f"{a}")  # 相当于打印a变量

# 例二
f"{2+2}{2*2}"  # 相当于字符串44

# f字符串支持format所有用法

对于更老版本的 Python 它还支持如下写法:

Python
1
2
3
4
5
6
7
8
9
# Python 2 可用写法
# 通过变量
name = "F0ne"
age = 18
s = "My name is %s, age %d" % (name, age)

# 通过字典
user = {"name": "Alice", "age": 18}
s = "My name is %(name)s, age %(age)d" % user
Python
# Python 2.6+ / 3.x 主流
# str.format()

name = "F0ne"
age = 18
# 直接写入对应变量
s = "My name is {}, age {}".format(name, age)
# 通过数字指定位置
s = "My name is {0}, age {1}".format(name, age)
# 或者通过关键字
s = "My name is {name}, age {age}".format(name=name, age=age)