字符串的意思就是“一串字符”,比如"Hello world"是一个字符串,"How are you?"也是一个字符串。
Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行,只要两边的引号能配对即可。
字符串引号里面的的每个基本单元叫做字符,比如字符串"abc"中,"a"、"b"和"c"就是字符串组成的基本单元,它们都是字符。
如下定义的变量,存储的是字符串类型的值
a = "I'm Bob" # 一对双引号
b = 'I am Bob' # 一对单引号
c = 'He said:I\'m Bob' # 转义字符
d = '''I'm Bob''' # 三个单引号
e = """I'm Bob """ # 三个双引号
小总结:
- 双引号或者单引号中的数据,就是字符串
- 如果使用一对引号来定义字符串,当出现符号冲突时可以使用转义字符,比如变量c
- 使用三个单引号或者三个双引号定义的字符串可以包裹任意文本
字符串的运算
Python为字符串类型提供了非常丰富的运算符,我们可以使用+运算符来实现字符串的拼接,可以使用*运算符来重复一个字符串的内容,可以使用in和not in来判断一个字符串是否包含另外一个字符串,我们也可以用[]和[:]运算符从字符串取出某个字符或某些字符。
拼接和重复
下面的例子演示了使用 + 和 * 运算符来实现字符串的拼接和重复操作。
s1 = 'hello' + ' ' + 'world'
print(s1) # 结果:hello world
s2 = '!' * 3
print(s2) # 结果:!!!
s1 += s2 # s1 = s1 + s2
print(s1) # 结果:hello world!!!
s1 *= 2 # s1 = s1 * 2
print(s1) # 结果:hello world!!!hello world!!!
用 * 实现字符串的重复是非常有意思的一个运算符,在很多编程语言中,要表示一个有10个 a 的字符串,你只能写成"aaaaaaaaaa",但是在Python中,你可以写成'a' * 10。你可能觉得"aaaaaaaaaa"这种写法也没有什么不方便的,那么想一想,如果字符 a 要重复100次或者1000次又会如何呢?
比较运算
对于两个字符串类型的变量,可以直接使用比较运算符比较两个字符串的相等性或大小。
需要说明的是,因为字符串在计算机内存中也是以二进制形式存在的,那么字符串的比较其实比的是:每个字符对应的编码的大小。
例如A的编码是65, 而a的编码是97,所以'A' < 'a'的结果相当于就是65 < 97的结果,很显然是True;
而'boy' < 'bad',因为第一个字符都是'b'比不出大小,所以实际比较的是第二个字符的大小,显然'o' < 'a'的结果是False,所以'boy' < 'bad'的结果也是False。
如果不清楚两个字符对应的编码到底是多少,可以使用ord函数来获得,例如ord('A')的值是65,而ord('赵')的值是36213。
下面的代码为大家展示了字符串的比较运算。
s1 = 'a w