Python 字符串(String)
一. Python字符串(Sting)的定义
字符串(String) 是 Python 中最常用的数据类型,使用单引号或者双引号('',"")创建,例如
string = "21yi.com" site = '21yi.com'
Python支持下表的方式获取字符串中的值 String[头:尾]或String[下标],下标从0开始,尾部从-1开始
string = "21yi.com"
print(string[0]) # 返回2
print(string[1:4]) # 返回1yi
print(string[-1]) # 返回m
print(string[-5:-1]) # 返回i.co
二. Python字符串转义
字符串中遇到特殊字符时,可用反斜线(\)转义
转义符 | 功能 | 实例 |
ASCII码(十进制) |
\ | 续行 |
print("hello, \ |
|
\' | 代表一个单引号 |
print("\'") # 输出' |
039 |
\" | 代表一个双引号 | print("\"") # 输出" | 034 |
\\ | 代表一个反斜线 |
print("\\") # 输出\ |
092 |
\n | 换行,将当前位置移到下一行开头 |
print("hello,\nworld") |
010 |
\r | 回车(CR),将当前位置移到本行开头 |
print("\r") # 输出回车符 |
013 |
\t 或 \v | 制表符(一个TAB) |
print("hello,\tworld") # 输出hello, world |
009或011 |
\f | 换页(FF),将当前位置移到下页开头 |
print("hello,\fworld") # 输出hello,world |
012 |
\a | 响铃(BEL) | 007 | |
\b | 退格,将当前位置前移一格 |
print("hello,\bworld") # 输出helloworld |
008 |
\0 | 空字符(NUL) |
print("\0") # 输出空 |
000 |
\ddd | 1到3位八进制数所代表的任意字符 |
print("\42") # 输出",因为\"对应的八进制为42
|
八进制 |
\xhh | 十六进制所代表的任意字符 |
print("\x27") # 输出',因为\'对应的十六进制为27 |
十六进制 |
三.Python字符串运算符
+ | 字符串连接符 |
* | 重复输出字符串 |
[] | 下标截取字符串 String[0],String[1] |
[:] | 下标截取字符串片段 String[1:3],String[-4:-1] |
in | 判断Sting中是否有给定的字符 “S” in String |
not in | 判断Sting中是否不包含有给定的字符 “S” not in String |
r/R | 原始字符串,没有转义特殊 |
% | 字符串格式化,比如%d |
h = "hello,"
s = "21yi.com"
y = 25
print(h + s) # hello,21yi.com
print(h * 3) # hello,hello,hello,
print(h[1]) # e
print(s[2:5]) # yi.
print(h in s) # False
print(".com" not in s) # False
print(r"\n") # \n
print("He is %d years old" % y) # He is 25 years old
四.Python字符串格式化
Python 支持格式化字符串的输出 ,使用方法与 C 中 sprintf 函数一样的语法。
符号 | 用法描述 |
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字 |
%e | 科学计数法格式化浮点数 |
%E | 科学计数法格式化浮点数,同%e |
%g | %f 和 %e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
五.Python 字符串(String)内置函数
函数 | 用法描述 |
capitalize() |
将字符串首字母转换为大写 |
casefold() | 将字符串全部转为小写 |
center(width[, fillchar]) | |
count(sub[, start[, end]]) | |
encode(encoding="utf-8", errors="strict") | |
endswith(suffix[, start[, end]]) | |
expandtabs(tabsize=8) | |
find(sub[, start[, end]]) | |
format(*args, **kwargs) | |
format_map(mapping) | |
index(sub[, start[, end]]) | |
isalnum() | |
isalpha() | |
isascii() | |
isdecimal() | |
isdigit() | |
isidentifier() | |
islower() | |
isnumeric() | |
isprintable() | |
isspace() | |
istitle() | |
isupper() | |
join(iterable) | |
ljust(width[, fillchar]) | |
lower() | |
lstrip([chars]) | |
maketrans(x[, y[, z]]) | |
partition(sep) | |
removeprefix(prefix, /) | |
removesuffix(suffix, /) | |
rfind(sub[, start[, end]]) | |
rindex(sub[, start[, end]]) | |
rjust(width[, fillchar]) | |
rpartition(sep) | |
rsplit(sep=None, maxsplit=-1) | |
rstrip([chars]) | |
split(sep=None, maxsplit=-1) | |
splitlines([keepends]) | |
startswith(prefix[, start[, end]]) | |
strip([chars]) | |
swapcase() | |
title() | |
translate(table) | |
upper() | |
zfill(width) |
Python 的字符串常用内建函数如下:
序号 | 方法及描述 |
---|---|
1 |
capitalize()将字符串的第一个字符转换为大写 |
2 | 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
3 | 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
4 | Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
5 | 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
6 |
endswith(suffix, beg=0, end=len(string))检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
7 | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
8 | 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
9 | 跟find()方法一样,只不过如果str不在字符串中会报一个异常。 |
10 | 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
11 | 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False |
12 | 如果字符串只包含数字则返回 True 否则返回 False.. |
13 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
14 | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
15 | 如果字符串中只包含空白,则返回 True,否则返回 False. |
16 | 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
17 | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
18 | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
19 | 返回字符串长度 |
20 | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
21 | 转换字符串中所有大写字符为小写. |
22 | 截掉字符串左边的空格或指定字符。 |
23 | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
24 | 返回字符串 str 中最大的字母。 |
25 | 返回字符串 str 中最小的字母。 |
26 | 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。 |
27 | 类似于 find()函数,不过是从右边开始查找. |
28 | 类似于 index(),不过是从右边开始. |
29 | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
30 | 删除字符串字符串末尾的空格. |
31 | 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
32 | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
33 | 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
34 | 在字符串上执行 lstrip()和 rstrip() |
35 | 将字符串中大写转换为小写,小写转换为大写 |
36 | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
37 | 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
38 | 转换字符串中的小写字母为大写 |
39 | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
40 | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |