Python 中的字符串用 str 表示,通过字面意思也不难理解,就是一串字符,在 Python 数据类型 里面已经基本了解了。我们 Python 图文安装教程 文章最后的 hello world 演示,变量里的就是字符串。
字符串 str
在 Python 中单行字符串可以使用单引号、双引号来赋值,单引号跟双引号是一样的。而多行字符串,需要用三引号来赋值。
代码如下,其中 s1 和 s2 代表的字符串是一样的。
s1 = 'hello world's2 = "hello world"s3 = '''helloworld'''print(s1)print(s2)print(s3)
有时候我们需要获取字符串中的一个或者部分字符,这时候就用到下面的办法:
获取字符串中的单个字符
我们可以用索引值来读取字符串中的某个字符,索引值就是字符串第几位,只不过在 Python 中第一位是从 0 开始的。
比如我们获取字符串中第一位字符,需要用 name[n] 来获取。其中 name 是变量名,n 是索引值。
s = 'hello world'print(s[0])print(s[1])
截取从 n 到 m 索引位置的字符串,
除了可以获取某个字符之外,还可以截取字符串中指定范围的字符串,比如 name[n:m] 截取的是从索引值 n 到 索引值 m 前一位 的字符串,是不包含索引值 m 的字符串的。
下面是读取索引值 1 到 3 的字符组成的字符串。
s = 'hello world'print(s[1:4])
hello world 中截取出的是 ell.
我们发散思维一下,如果我们想从字符串 s 第1位开始截取呢,就是 s[0:4].
获取从n到m中间,步进为 x 的字符串
指的是索引值 n 到索引值 m 前一位的范围内,从范围内第 0 索引位是第一个字符,然后每第 x 个索引位取一个字符,组成一个字符串。
方法是这样的:name[n:m:x]
这样说很难理解,看例子就明白了:
s = '0123456789'print(s[1:8:3])#从索引值 1 到 8,步进为 3
从 0123456789 中 [1:8] 范围的字符串是 1234567,然后 0 索引位是1,第3 索引位是4,下一个第 3 索引位是7.
大家从这个例子看到了,井号后面是注释,在程序中不运行这段代码。注释在程序中主要有两种作用,一种是对这段代码进行解释和备注,之后自己或者其他人看到方便理解,特别是大的项目有好的注释是一个好的习惯。当然在学习过程中带注释,更有利于学习。另外一种是对临时不需要的代码进行屏蔽,这样代码既没有删除,同时也不会运行,如果后面需要的话,直接删掉井号就可以运行了
字符串倒序
有时候我们需要对一个字符串倒序,比如 abc 变成 cba,这时候根据上面取字符串的方法可以实现,就是从开头到结尾,然后步进是 -1.
但是我们有时候并不知道这个字符串的长度,所以就用的另外一个特性,就是冒号前面如果没有数字的话,默认从索引值 0 开始,冒号后面没有数字的话,默认到字符串结尾。
方法是这样的:name[::-1]
下面举个例子就明白例:
s = 'abcde'print(s[::-1])
除了上面的办法,字符串还有一些内置的方法。
字符串内置方法:
内置方法 | 内容 |
.lower() | 字符串大写字母全部换成小写 |
.upper() | 字符串中小写字母全部换成大写 |
.find('x') | 字符串中'x'第一次出现的位置 |
.replace('old','new') | 把字符串中‘old’换成‘new’ |
.count('x') | 字符串中'x'的个数 |
.isalpha() | 判断是否只含有字母,是返回True |
.isdigit() | 判断是否只有数字,是返回True |
使用方法类似于:name.lower()
其中 name 就是变量名,使用内置方法,就是在变量名后面。
后面一举例子就非常清楚了。
字符改变大小写
s = 'Hello World.'print(s)a = s.lower()# 把字符串中的大写变成小写print(a)b = s.upper()# 把字符串中的小写变成大写print(b)
寻找、统计和替换字符
s = 'Hello World.'a = s.find('o')# 寻找字符串中第一个'o'的索引值print(a)b = s.replace('l','L')# 把字符串中所有的 'l' 替换成 'L'print(b)c = s.count('o')# 查找字符串中'o'的个数print(c)
判断字符串是否是纯数字或纯字母组成
s = "abc123"a = s.isalpha()print(a)# 是不是纯字母的字符串b = s.isdigit()print(b)# 是不是纯数字的字符串print('-----分割线-----')i = '123'c = i.isdigit()d = i.isalpha()print(c)print(d)
从举的例子里可以看到:字符串无法直接修改其中的字符,但是可以重新赋值。也就是,比如像修改原来的字符串,重新赋值给原来的变量就可以了。
举个小例子:
s = 'Hello World.'print(s)s = s.lower()# 把变量 s 中的大写变成小写,再赋值给sprint(s)
转义字符串
这里需要解释一下,我们前面说到,字符串需要用引号来赋值,那么如果我们想要在字符串里面也出现引号呢,这时候就用到转义字符串,否则就会出错。
我们先举例说明:
比如后面这个字符串 "hello" 'world'. 就不能直接把这个字符串放到引号里面,需要用到转义字符反斜杠 \:
s = '\"Hello\" \'World\'.'print(s)
通过反斜杠不但可以用在引号上,也可以用在其他字符上,比如我们知道反斜杠是转义字符,那么如果字符串中包含反斜杠呢,很简单用 \\ 表示就可以了。
下面是所有的转义字符串:
转义字符串 | 含义 |
\\ | 反斜杠 \ |
\' | 单引号 ' |
\" | 双引号 " |
\b | 退格 |
\n | 换行 |
\t | 制表符 |
\000 | 空格 |
本文学习了字符串相关知识,下一篇日志将分享一下列表和列表的运算方法的相关知识,想要了解更详细的 Python 知识,欢迎关注微信公众号 逍遥乱弹,然后点击菜单 Python 就可以查看我所有的 Python 学习日志了,后面会持续更新的。