字符串是由数字、字母、下画线组成的一串字符,在编程语言中表示文本的数据类型。在 Python 2.X 中,普通字符串是以 8 位 ASCII 码进行存储的,而 Unicode 字符串则以 16 位 Unicode 编码存储,这样能够表示更多的字符集,使用时需要在字符串前面加上前缀 u。在 Python 3.X 中所有的字符串都使用 Unicode 编码存储。
声明字符串可以使用单引号'或双引号",Python 中典型的字符串赋值语句如下:
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用的。要获取字符串中的一部分,可以使用中括号[ ]来截取字符串,例如:
上述代码的运行结果如下所示:
字符串支持截取、连接、重复输出等操作,Python 中字符串支持的操作运算符如表 1 所示。
运算符 | 描述 |
---|---|
+ | 字符串连接,例如 Hello+world 输出 Helloworld |
* | 重复输出字符串,例如 Hello*2 输出HelloHello |
[] | 通过下标获取字符串中的单个字符 |
[ : ] | 获取字符串的一部分,遵循左闭右开原则,例如 str[0:2] 不包含第 3 个字符 |
In | 成员运算符,如果字符串中包含给定的字符则返回 True |
not in | 成员运算符,如果字符串中不包含给定的字符则返回 True |
r/R | 原始字符串,所有的字符串都直接按照字面的意思来使用 |
% | 格式化字符串 |
在字符串中使用特殊字符需要用到转义字符,Python 使用反斜杠“\”对字符进行转义。Python 中用于转义的字符如表 2 所示。
转义字符 | 描述 |
---|---|
\ | 在行尾用作续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(删除) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其他的字符以普通格式输出 |
Python支持格式化输出字符串,目的是将需要输出的字符串按照预先设定的格式显示。例如:
上述代码的运行结果如下所示:
Python 中用于格式化输出字符串的符号共有 13 个,如表 3 所示。
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f 和 %e 的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
与 PHP 语言类似,Python 也提供了很多字符串相关操作的函数,常用的字符串函数如表 4 所示。
函数 | 描述 |
---|---|
title() | 返回将原字符串中单词首字母大写的新字符串 |
istitle | 判断字符串中的单词首字母是否大写 |
capitalize() | 返回将整个字符串的首字母大写的新字符串 |
lower()、upper() | 返回字符串的小写、大写后的新字符串 |
函数 | 描述 |
---|---|
swapcase() | 返回字符串的大小写互换后的新字符串 |
islower()、isupper() | 判断字符串是否全部为小写、大写 |
strip()、lstrip()、rstrip() | 删除字符串首尾、左部或右部的空白,空白包括空格、制表符、换行符等 |
ljust()、rjust()、center() | 打印指定数目的字符,若字符串本身长度不足,则在其左部、右部或者两端用指定的字符补齐 |
startswith()、endswith() | 判断原字符串是否以指定的字符串开始或结束 |
isnumeric()、isdigit()、isdecimal() | 判断字符串是否为数字、整数、十进制数字 |
find()、rfind() | 在字符串中查找指定字符串第一次出现的位置,方向分别为从左和从右 |
split() | 按照指定的字符将字符串分割成词,并返回列表 |
splitlines() | 按照换行符将文本分割成行 |
count() | 统计指定字符串在整个字符串中出现的次数 |
format() | 用指定的参数格式化原字符串中的占位符 |
上述字符串函数的示例代码如下:
上述代码的运行结果如下所示: