Python 字符串

字符串和字符串操作

字符串也是一种常用的计算对象,是 Python 语言里最常用的一种基本编程元素。字符串的类型是 str。

程序里用一对单引号(或者一对双引号)括起的字符序列表示一个字符串(直接写出的字符串,或说是“字符串字面量”),序列中可以有空格或其他特殊字符。特殊字符见本页最后的列表。

  • 最常用的:\' 在字符串里表示单引号;\" 在字符串里表示双引号;\n 在字符串里表示换行。
在用一对引号括起的字符序列描述一个字符串时,不允许在字符串的中间换行。如果需要写很长的字符串,可以用连续写出的多个字符串(直接写出的字符串字面量,无论是用单引号写法或双引号写法)的方法,只要这些字符串之间只有空格、换行等(称为“空白字符”),系统就会把它们连接成一个字符串。

字符串还可以用一对连续三个引号(单引号或双引号)括起的字符序列表示。采用这种方式描述字符串,允许在串的中间换行,所有空格、换行等字符也看作字符串的内容。

若干字符串运算

(设 s 是值为字符串的表达式,譬如值为字符串的变量,n 是整数)
  • 字符串的长度是字符串里字符的个数。内部函数 len(s) 取得 s 的长度;
  • 字符串里的每个字符有一个下标,下标从 0 开始计数,直至 len(s) - 1;
  • 表达式 s[0] 取得 s 的首字符,s[-1] 取出 s 的末字符,也可以用其他下标值(在 s 的合法下标范围内)取得 s 里的其他字符(一个字符就是只包含一个字符的字符串);
  • s[2:5] (假设 2 和 5 是对 s 合法的下标)取得 s 里从下标 2 到下标 4(就是 5 - 1)的一段字符,一般的,s[m:n] 取得 s 里从下标为 m 的字符开始到下标为 n-1 的字符为止的一段字符。这样取得的一段字符还是一个字符串(子字符串);可以用 s[m:] 取得从第 m 个字符开始直至 s 里最后字符的字符串;用 s[:n] 取得 s 里从开始到下标为 n-1 的字符为止的字符串。
  • + 运算符也用于表示字符串的拼接,如 'abc' + '1 2 3" 得到字符串 'abc123';
  • s * n 表示字符串 s 重复 n 次,如 'abc' * 3 得到字符串 'abcabcabc'。

注意:123 和 '123' 不同,前者是一个整数字面量,描述的是一个整数,后者是一个字符串字面量,描述的是由三个数字字符构成的字符串。类似的,123.45 和 '123.45' 不同,后者是一个包含 6 个字符的字符串。

字符串还有许多其他操作,后面可能有些使用。有关 str 类型的详情见 Python 标准库手册4.7节,Python 提供的与字符串有关的更多功能见标准库手册第 6 节(String Services)。

Python 特殊字符:

\newline 反斜线符号后紧接换行,忽略反斜线符号和换行
\\ 表示反斜线符号 (\)
\' 表示单引号 (')
\" 表示双引号 (")
\a 表示响铃符号 (BEL)
\b 表示空格符号 (BS)
\f 表示换页符号 (FF)
\n 表示换行符号 (LF)
\r 表示回车符号 (CR)
\t 表示水平制表符 (TAB)
\v 表示垂直制表符 (VT)

字符的八进制和十六进制描述

\ooo ooo 是三个八进制数字字符
\xhh hh 是两个十六进制数字字符
也可用于描述字节字面量。

进一步细节请参考 Python 语言手册 2.4.1 节(字符串和字节字面量,String and Bytes literals)

本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。