
3.1 字符串

↑扫码看视频
字符串类型str是常用的数据类型之一,开发者可以使用引号(单引号或双引号)来创建字符串。创建Python字符串的方法非常简单,只须为变量分配一个值即可。在本节中,将详细讲解Python字符串的知识。
3.1.1 Python字符串介绍
例如在下面的代码中,“Hello Python”和“Python Java”都属于字符串。

字符串通常由单引号“'”、双引号“"”、3个单引号或3个双引号包围的一串字符组成。初学者需要注意,这里说的单引号和双引号都是英文字符格式(半角)的符号。
(1)单引号字符串与双引号字符串本质上是相同的。但当字符串内含有单引号时,如果用单引号字符串就会导致无法区分字符串内的单引号与字符串标志的单引号,这时就要使用转义字符串,如果用双引号字符串在字符串中直接书写单引号即可。例如下面的演示代码。

(2)三引号字符串可以由多行字符组成,单引号或双引号字符串则无法实现。当需要多行的字符串时,可以使用三引号字符串来实现,例如下面的演示代码。

(3)字符串中的字符可以包含数字、字母、中文字符、特殊符号,以及一些不可见的控制字符,例如换行符、制表符等。例如下面列出的都是合法的字符串。

3.1.2 访问字符串中的值
我们可以通过索引序号(序号从0开始)来读取字符串中的某个字符,例如“abcde.[1]”取得的值是“b”。

实例文件fangwen.py的具体实现代码如下所示。

在上述代码中,使用方括号截取了字符串“var1”和“var2”的值,执行后会输出如下结果。

3.1.3 修改字符串
我们可以修改字符串的值,并将其赋值给另一个变量。

实例文件gengxin.py的具体实现代码如下所示。

通过上述代码,将字符串中的“World”修改为“Python”。执行后输出的结果如下所示。

3.1.4 转义字符
当我们需要在字符串中使用特殊字符时,需要用到反斜杠“\”表示的转义字符。常用的转义字符见表3-1。
表3-1 Python中常用的转义字符

在编程过程中,有时需要显示具体的特殊字符,而并不想让上面的转义字符生效,这时需要用到r和R来定义原始字符串。如果想在字符串中输出反斜杠“\”,就需要使用“\\”实现。

实例文件zhuanyi.py的具体实现代码如下所示。

在上述代码中,第1行用到转义字符“\n”实现换行,第2行用到转义字符“\\”显示一个反斜杠,第3行使用两个转义字符“\'”显示两个单引号,第4行使用“r”显示原始字符串,这个功能也可以使用“R”实现。执行后输出的结果如下所示。

3.1.5 格式化字符串
在Python程序中,可以格式化输出不同格式的字符串,此功能可以借助字符串格式符“%”来实现。常用的字符串格式化符号见表3-2。
表3-2 Python字符串格式化符号


实例文件geshihua.py的具体实现代码如下所示。

在上述代码中用到“%s”和“%d”2个格式化字符,执行后输出的结果如下所示。

3.1.6 字符串处理函数
Python语言提供了多个操作字符串的函数,其中常用的字符串处理函数见表3-3。
表3-3 常用的字符串处理函数


实例文件hanshu.py的具体实现代码如下所示。


在上述代码中,从第3行开始,每行都调用了一个字符串处理函数,并打印输出了处理结果。执行后输出的结果如下所示。
