字符串是一组不可修改的序列
,通常用单引号''
或者双引号""
包围组成。
# 字符串的表示
name = 'Joe'
name = "Joe"
在字符串里边,一些字符有隐藏的功能,可以用\
这个符号召唤。
>>> print('a\nb') # \n 换行 | windows系统换行是 \r\n
a
b
>>> print('a\tb') # \t 制表符
a b
>>> print('\\') # \ 本身也要转译
\
>>> print('\'\"') # 单引号双引号也需要转译
'"
格式化
是常见的字符串拼装形式。使用格式
'占位符1 占位符2' % (字符串1, 字符串2)
# 占位符
# %d 整数
# %f 浮点数
# %x 十六进制
# %s 字符串 | 如果不想那么严谨,所有类型都能有 %s 表示
>>> print('hello %s' % 'word')
hello world
>>> print('%s %s' % ('hello', 'world'))
hello world
>>> 'a' + 'b'
ab
切片
是Python赋予序列
的独特能力,我们前面说过,字符串是一组不可修改的序列
。
# 序列
# 'abcde'
# '01234'
# 按照这个序列索引取值的行为,就是切片。
>>> 'abcde'[0]
'a'
>>> 'abcde'[1:3]
'bc'
# 不可变性质
>>> 'abc'[0] = 'b' # (不能直接修改字符串的值)
"TypeError: 'str' object does not support item assignment"
比较常用的一些。
# 长度
>>> len('abc')
3
# 分解
>>> 'a,b,c'.split(',') # (当你需要把字符串变成列表的时候)
['a', 'b', 'c']
# 连接
>>> ','.join('abc')
'a,b,c'
# 首字母大写
>>> 'abc'.capitalize()
Abc
# 大写
>>> 'abc'.upper()
ABC
# 小写
>>> 'ABC'.lower()
abc
# 大小写转换
>>> 'AbC'.swapcase()
aBc
# 检测开头字符
>>> 'abc'.startswith('a')
True
# 检测结尾字符
>>> 'abc'.endswith('a')
False
# 字符首次出现的位置 (序列索引,从0开始)
>>> 'cc'.find('c')
0
# 字符最后出现的位置
>>> 'cc'.rfind('c')
1
# 次数
>>> 'cc'.count('c')
2
# 替换
>>> 'a'.replace('a','b',100) # 把a替换成b,第三个参数100指:最多替换100个a
b
name = 'Joe'
name.replace('oe', 'ason') # 把 Joe 替换成Jason
>>> print(name)
'Joe'
# 因为字符串是不可改变的,所有replace不能直接修改,只是返回一个新的值
name2 = name.replace('oe', 'ason')
>>> print(name2)
>>> 'Jason'