Python 没有单独的字符类型,一个字符就是长度为 1 的字符串,而且字符串不能改变。
字符串引号
单引号
我们在字符的两边加上引号,表明我们输入的字符是字符串。普通情况下使用单引号就能表示字符串了,比如 'let me go' 。
双引号
但是如果我们输入 'let's go',程序直接报错,提示不合法的语法。因为表示字符串的引号需要成对出现,python 才知道你输入的是字符串。所以这个时候我们要借助双引号,改为 "let's go",程序就不会报错了。
三引号
如果我们输入字符太多,一行占据的字符太多,影响观看,我们可以考虑给字符串加上三引号,在三引号中间换行,以保证字符串的正确输出。
>>> '''hello world;hello world;hello wolrd.''''\nhello world;\nhello world;\nhello wolrd.\n'
转义字符
反斜杠 \ 在 python 中是转义字符,比如 \n 代表换行,但如果我们想原样输出 \n ,还需要在前面加上一个反斜杠,如 \\n 。
>>> print('hello \\n world')hello \n world
常用转义字符:
| 转义字符 | 描述 |
|---|---|
| \n | 换行 |
| \‘ | 单引号 |
| \t | 横向制表符 |
| \r | 强制换行 |
字符串操作
字符串拼接
假设有两个字符串,hello 和 world,我们想要把这两个字符串拼接到一起,可以使用 + 连接两个字符串,使其成为一个字符串。
>>> 'hello'+'world''helloworld'
假设我们想要一个字符串重复多次,我们可以使用 * 解决这个问题,* 后面跟上需要重复的数字:
>>> 'hello world'*3'hello worldhello worldhello world'
获取单个字符
如果我们想要获取字符串的第一个字符,应该怎么做,或者获取字符串最后一个字符,应该怎么做。
我们可以把字符串看作是一个数组,第一个字符位于数组索引为 0 的位置。最后一个字符位于数组长度 -1 索引的位置。
假设字符串是 hello world ,我们想要获取第一个字符,可以这样实现:
>>> 'hello world'[0]'h'
想要获取最后一个字符,可以这样写:
>>> 'hello world'[-1]'d'
我们上面提到过,最后一个字符的索引是 数组长度 -1 ,所以可以简单理解为 -1 代表 数组长度 -1 。
倒数第二个字符:
>>> 'hello world'[-2]'l'
截取多个字符
字符串的截取的语法格式如下
变量[头下标:尾下标:步长]
假设我们想要从 hello world 获取 h 到 w 之间的字符,应该如何完成?
我们把字符串当作数组,h 的索引是 0,空格也是一个字符,所以 w 的索引是 6。
>>> 'hello world'[0:6]'hello '
从上面结果上看,结果和我们预期结果有偏差,少了一个字符。这是因为截取字符串时,需要遵循左开右闭的原则,右边的索引当作边界的话,并不会访问它,需要在目标索引位置加 1。
>>> 'hello world'[0:7]'hello w'
接下来讲一下如何快速截取字符串,我们可以把字符串快速分割为前半部分或者是后半部分。
比如有字符串 java python php c++ c# golang ,我们想要截取 python 及后面所有的字符串,可以这样写:
>>> 'java python php c++ c# golang'[5:]'python php c++ c# golang'
如果在方括号内不指定数字,说明要截取到字符串的末尾或开头。
如果只想截取 golang 字符串,可以这样写:
>>> 'java python php c++ c# golang'[-6:]'golang'
替换
规则:
字符串.replace(旧字符串,新字符串)
str = 'ak47-k'replace = str.replace('k', 'm')print(replace)
结果:
am47-m
分割
规则:
字符串.split(分割符)
str = 'a,b,c,d'str_list = str.split(',')for split in str_list:print(split)
结果:
abcd
查找
如果查找成功,返回第一次出现的索引。如果查找失败,返回 -1。
规则:
字符串.find(需要查找的字符串)
str = 'a,hello'find = str.find('hello')if find > -1:print('找到了')else:print('未找到')
结果:
找到了
格式化
传统格式化的方式与 Java 很相似:
name = "法外狂徒"print("hello %s" % name)
f-string
f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
name = "法外狂徒"print(f'hello {name} !')
