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篇 基本数据类型之字符串的主要内容,如果未能解决你的问题,请参考以下文章