字符串是 Python 中最常用的数据类型。我们可以使用引号( ‘ 或 “ 或’’’str’’’)来创建字符串。Python中的注释可以使用#comment
创建字符串:
1 | str1 = 'hello world' |
切片操作,和list类似:
1 | print(str1[:5]) |
更新:
1 | #update str |
字符串的拼接
1 | str5 = 'hello' "world" |
str的一些函数如下:
函数 | 含义 |
---|---|
capitalize() | 将字符串的第一个字符转换为大写 |
lower() | 转换字符串中所有大写为小写 |
upper() | 转换字符串中所有小写为大写 |
casefold() | 转换字符串中所有大写为小写 |
swapcase() | 对字符串的大小写字母进行转换 |
title() | 返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
strip() | 在字符串上执行 lstrip()和 rstrip() |
rstrip() | 删除字符串字符串末尾的空格. |
lstrip() | 截掉字符串左边的空格或指定字符。 |
replace(old,new,[,max]) | 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。 |
maketrans(x, y=None, z=None, /) | 此静态方法返回一个可供 str.translate( ) 使用的转换对照表。 |
translate(table) | translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。 |
center(width[, fillchar]) | 一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
ljust(width[, fillchar]) | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
rjust(width[, fillchar]) | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
zfill(width) | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
count(sub[, start[, end]]) | 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
encode(encoding=’utf-8’,errors=’strict’) | 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’ |
endswith(suffix[, start[, end]]) | 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
expandtabs(tabsize=8) | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 |
splitlines([keepends]) | 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符 |
split(sep=None, maxsplit=-1) | 指定分隔符对字符串进行切片,如果第二个参数 maxsplit 有指定值,则分割为 maxsplit +1 个子字符串。 |
rsplit(sep=None, maxsplit=-1) | 除了从右边开始拆分,rsplit( ) 的其他行为都类似于 split( ) |
rpartition(sep) | 方法类似于 partition()方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符 |
rindex(sub[, start[, end]]) | 类似于 index(),不过是从右边开始. |
rfind(sub[, start[, end]]) | 类似于 find()函数,不过是从右边开始查找. |
partition(sep) | 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串 |
isupper() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
istitle() | 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
isspace() | 如果字符串中只包含空白,则返回 True,否则返回 False. |
isprintable() | 是否为可打印字符 |
isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
isidentifier() | 判断字符串是否是有效的 Python 标识符,即可用此方法来判断变量名是否合法 |
isdigit() | 如果字符串只包含数字则返回 True 否则返回 False.. |
isdecimal() | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
index(sub[, start[, end]]) | 跟find()方法一样,只不过如果str不在字符串中会报一个异常。 |
format_map(mapping) | 该方法类似于 str.format(**mapping) 都可以进行字符串格式化,不同之处在于 format( ) 方法是一种所有情况都能使用的格式化方法,而 str.format_map(mapping) 方法仅适用于字符串格式中可变数据参数来源于字典等映射关系数据时。mapping 会被直接使用而不是复制到一个 dict |
format(*args, **kwargs) | 格式化字符串 |
join(seq) | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
find(sub[, start[, end]]) | 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
str的格式化:
符号 | 描述 |
---|---|
%c | 格式化字符及其ascii码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号16进制数 |
%X | 格式化无符号16进制数大写 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 用科学计数法格式化浮点数 |
%g | %f 和 %e的简写 |
%G | %f和%E的简写 |
%p | 用16进制格式化变量的地址 |
一些其他的辅助:
符号 | 含义 |
---|---|
* | 定义宽度或者小数点精度 |
- | 左对齐 |
+ | 在正数面前显示加号 + |
在正数面前显示空格 | |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示数字前面填充0而不是空格 |
% | ‘%%’输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
f-string 是字面量格式化字符串,新的格式化字符串语法,f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,示例如下:
1 | print(f'{1+2}') |
当然还有一些的转义字符如下:
符号 | 含义 |
---|---|
\ (在行尾) | 续行符 |
\ | 反斜杠 |
\’ | 单引号 |
\’’ | 双引号 |
\a | 响铃 |
\b | 退格 |
\000 | 空 |
\n | 换行符 |
\v | 垂直制表符 |
\t | 水平制表符 |
\r | 回车 |
\f | 换页 |
\yyy | 八进制,y代表0-7 |
\xyy | 16进制以\x开头,y代表字符 |
\other | 其他字符以普通格式输出 |
还有一些与字符串有有个的函数:
ord() :它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
chr():用一个整数作参数,返回一个对应的字符。
max(str)/min(str) : 返回str中最大或者最小的字母