学习目标
- 字符串的表示方式
- 字符串的下标和切片
- 字符串的常见操作
- 字符集和编码
- 成员运算符
- 字符串的format方法
字符串介绍
字符串可以理解为一段普通的文本内容,在python里,使用引号来表示一个字符串,不同的引号表示的效果会有区别。
字符串表示方式
代码语言:javascript复制a = "I'm Tom" # 一对双引号
b = 'Tom said:"I am Tom"' # 一对单引号
c = 'Tom said:"I'm Tom"' # 转义字符
d = '''Tom said:"I'm Tom"''' # 三个单引号
e = """Tom said:"I'm Tom" """ # 三个双引号
小总结
- 双引号或者单引号中的数据,就是字符串
- 如果使用一对引号来定义字符串,当出现符号冲突时可以使用转义字符
- 使用三个单引号、双引号定义的字符串可以包裹任意文本
转义字符
转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分,使用来表示一个转义字符。常见的转义字符以及它所代表的含义如下表:
转义字符 | 含义 |
---|---|
r | 将当前位置移到本行开头 |
n | 将当前位置移到下一行开头 |
t | 用来表示一个制表符 |
代表一个反斜线字符 | |
’ | 用来显示一个单引号 |
" | 用来显示一个双引号 |
下标和切片
一、 下标/索引
所谓“下标”又叫“索引”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
生活中的 “下标”
超市储物柜
字符串中"下标"的使用
如果有字符串:name = ‘abcdef’,在内存中的实际存储如下:
1. 如果想取出部分字符,那么可以通过下标的方法,(注意在计算机中,下标从 0 开始)
代码语言:javascript复制name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
运行结果:
代码语言:javascript复制a
b
c
2. 遍历
所谓遍历,可以理解为按照一定的规则(一般情况下就是数据的下标),访问每一个数据。不是所有的数据都能够被遍历,字符串是可迭代对象,能够进行遍历。
可以使用while和for语句,对字符串里的元素进行遍历。
while语句遍历:
代码语言:javascript复制msg = 'hello world'
i = 0
while i < len(msg):
print(msg[i])
i = 1
for语句遍历:
代码语言:javascript复制msg = 'hello world'
for x in msg:
print(x)
3. 切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长],也可以简化使用 [起始:结束]
注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。
代码语言:javascript复制# 索引是通过下标取某一个元素
# 切片是通过下标去某一段元素
s = 'Hello World!'
print(s)
print(s[4]) # o 字符串里的第4个元素
print(s[3:7]) # lo W 包含下标 3,不含下标 7
print(s[:]) # Hello World! 取出所有元素(没有起始位和结束位之分),默认步长为1
print(s[1:]) # ello World! 从下标为1开始,取出 后面所有的元素(没有结束位)
print(s[:4]) # Hell 从起始位置开始,取到 下标为4的前一个元素(不包括结束位本身)
print(s[:-1]) # Hello World 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)
print(s[-4:-1]) # rld 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)
print(s[1:5:2]) # el 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)
print(s[7:2:-1]) # ow ol 从下标为7的元素开始(包含下标为7的元素),倒着取到下标为2的元素(不包括下标为2的元素)
# python 字符串快速逆置
print(s[::-1]) # !dlroW olleH 从后向前,按步长为1进行取值