Python入门教程第07篇 基本数据类型之字符串

Posted 不剪发的Tony老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第07篇 基本数据类型之字符串相关的知识,希望对你有一定的参考价值。

本篇我们将会学习 Python 字符串的概念以及它的基本操作。

Python 字符串

字符串是由一组字符构成的序列。在 Python 中,引号中的内容就是一个字符串,引号可以是单引号或者双引号。例如:

message = 'This is a string in Python'
message = "This is also a string"

如果一个字符串自身包含单引号,可以使用双引号引用:

message = "It's a string"

同样,如果一个字符串自身包含双引号,可以使用单引号引用:

message = '"Beautiful is better than ugly.". Said Tim Peters'

另外,我们也可以使用反斜线(\\)对引号进行转义。例如:

message = 'It\\'s also a valid string'

Python 解释器会对反斜线进行特殊处理。如果不想对字符串中的反斜线进行特殊处理,可以在字符串前面增加一个字母 r,表示使用原始字符串(raw string)。例如:

message = r'C:\\python\\bin'

创建多行字符串

如果想要指定一个跨行的字符串,可以使用三重单引号(’’’)或者三重双引号(""")。例如:

help_message = '''
Usage: mysql command
    -h hostname     
    -d database name
    -u username
    -p password 
'''

print(help_message)

以上代码的输出信息如下:

Usage: mysql command
    -h hostname
    -d database name
    -u username
    -p password

在字符串中使用变量

有些时候我们想要在字符串中使用某个变量的值。例如,我们想要在 message 字符串变量中使用 name 变量的值:

name = 'John'
message = 'Hi'

为此,我们可以在字符串的开始加上字母 f,然后使用大括号引用变量 name:

name = 'John'
message = f'Hi name'
print(message)

Python 解释器会将 name 替换为变量 name 的值,以上代码运行的结果如下:

Hi John

以上示例中的 message 是一个格式化字符型,简称为 f-string。Python 3.6 开始引入了 f-string。

连接字符串

当我们将多个字符串常量使用空格分隔,Pyrhon 会自动将它们连接成一个字符串。例如:

greeting = 'Good ' 'Morning!'
print(greeting)

输出结果输入:

Good Morning!

如果想要连接两个变量,可以使用 + 运算符:

greeting = 'Good '
time = 'Afternoon'

greeting = greeting + time + '!'
print(greeting)

输入结果如下:

Good Afternoon!

访问字符串元素

字符串是由字符组成的序列,因此我们可以通过下标访问字符串中的元素。字符串中的第一个元素的下标为 0。

以下示例演示了如果通过下标访问字符串元素:

str = "Python String"
print(str[0]) # P
print(str[1]) # y

以上代码的处理过程如下:

  • 首先,创建一个变量并赋值为“Python String”。
  • 然后,通过方括号([])和下标访问字符串中的第一个字符和第二个字符。

如果指定了一个负数作为下标,Python 将会从字符串的右边开始计算并返回相应的字符。例如:

str = "Python String"
print(str[-1])  # g
print(str[-2])  # n

以下是字符串“Python String”的所有下标:

+---+---+---+---+---+---+---+---+---+---+---+---+---+
| P | y | t | h | o | n |   | S | t | r | i | n | g | 
+---+---+---+---+---+---+---+---+---+---+---+---+---+
  0   1   2   3   4   5   6   7   8   9   10  11  12
-13 -12 -11 -10  -9  -8  -7  -6  -5  -4   -3  -2  -1

如果指定的下标超出了字符串的范围,将会返回一个错误:

str = "Python String"
print(str[13])
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    print(str[13])
IndexError: string index out of range

获取字符串的长度

如果想要获取字符串的长度,可以使用 len() 函数。例如:

str = "Python String"
str_len = len(str)
print(str_len)

输出结果如下:

13

获取子串

切片(Slicing)操作可以返回字符串中的子串。例如:

str = "Python String"
print(str[0:2])

输出结果如下:

Py

str[0:2] 返回了一个从下标 0(包含)到下标 2(不包含)的子串。

字符串切片操作的语法如下:

string[start:end]

子串包含了下标 start 对应的字符,但是不包含下标 end 对应的字符。

参数 start 和 end 都是可选的。如果省略了 start,表示从下标 0 开始;如果省略了 end,表示返回后续的所有字符。

字符串不可变

Python 字符串是一种不可变的对象,意味着我们不能改变字符串的值。例如,以下示例想要修改字符串中的某个字符,返回了错误:

str = "Python String"
str[0] = 'J'
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    str[0] = 'J'
TypeError: 'str' object does not support item assignment

如果想要修改字符串,我们可以基于已有的字符串新建一个字符串。例如:

str = "Python String"
new_str = 'J' + str[1:]
print(new_str)

输出结果如下:

Jython String

总结

  • Python 字符串是字符组成的序列,字符串是一种不可变对象。
  • 使用单引号或者双引号定义字符串常量。
  • 使用反斜线(\\)转义字符串中的引号。
  • 使用原始字符串(r’…’)转义字符串中的反斜线。
  • 使用格式化字符串(f-strings)在字符串常量中插入替代变量。
  • 使用空格自动连接多个字符串常量,使用 + 运算符连接多个字符串变量。
  • 使用内置的 len() 函数获取字符串的长度。
  • 使用 str[n] 访问字符串 str 中下标 n 对应的字符。
  • 使用字符串切片操作获取子串。

以上是关于Python入门教程第07篇 基本数据类型之字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python入门教程第09篇 基本数据类型之布尔类型

Python入门教程第08篇 基本数据类型之数字

Python3基础-语法入门

Python入门教程第88篇 常用字符串方法之字符类型检查

Python入门教程第88篇 常用字符串方法之字符类型检查

educoder Python数据分析01