字符串 string 的原型 实际上 是 一个数组,我们在 python里 也管它叫 列表。
它是一个一个 字符,或者说 多个 字符组合在一起的一个集合。然后呈现给我们 的就是 “字符串”。
那么既然是 数组,就肯定有下标吧。我们来试试。
字符串 = "你好,世界!" print(字符串[0]) print(字符串[1]) print(字符串[2])
下标 也被称为 索引,而 数组的下标 是从 0 开始的。
我们根据 代码的测试,每个 变量[下标] 都对应一个字符,这些字符 好似 就像 一个大集合里面的各个 元素一样,只不过它们是有顺序的。
语法:任意序列[起始位置:结束位置:步长]
切片只能用 多个例子举例,来自行领悟。
blog.csdnimg.cn/4984a551792b43e99ec742a9203999e1.png)
其实很多 人在 初学 切片的时候,一直忽略了一个事,就是画一个 切片遵守的 索引图。
如果你连这样的 索引图 都没有画过,你是根本 搞不明白 以下的一些问题的。
比如说:
①a[:-1] 为什么这样子写,就可以 把最后一个元素省略掉剩下的全部输出?
②a[1:-7:-1] 为什么输出的 是 第一个元素
③a[:0:-1] 为什么把第一个元素忽略了,剩下的都输出了,而且还是倒着输出的呢??
等等等 …… 这些切片的问题你没无法理解,实际上 就是你完全没有 正确的画出一张 索引图。
你总是看到 一些人,在 用切片的时候 就是能 奇思妙想的 使用一些技巧。但 等你真的理解了 切片的 截断原理,你就会发现 那根本就不是 什么技巧。也不需要你去死记硬背,只不过是 在 一张索引图里面 截取到了 自己想要的内容而已!!!
注意:
①如果步长是正值,起始位置默认是 0,终止位置 默认是 最后的下标+1。
②如果步长是负值,起始位置默认是 -1,终止位置 默认是 第一个位置 -1。
③切片 截断的位置,是不包含 终止位置的。因为 它就在终止位置那里 切断!
④步长不一定是正负 1,可以随意设置!
find("字符串",开始下标,终止下标)
rfind("字符串",开始下标,终止下标)
a = "01234456" print(a.find("234")) find 是 查找一个字符串,并返回 第一次出现的下标位置。 print(a.find("4")) print(a.rfind("4")) rfind 是从右往左找到 第一次 出现的位置下标
index()
跟 find() 的语法一模一样,就是 失败的时候会 直接报错,而不是返回 -1.仅此这一个区别而已。print(a.index("7")) print(a.rindex("4")) 当然也有 rindex 从右往左 找。
count(子串,开始的下标,终止的下标)
找一个子串 出现了几次。失败的话 就返回 0。print(a.count("4"))
4. replace(旧子串,新子串,替换次数)
默认次数是 -1,就是把看到的旧子串全部替换掉。它会直接 返回 被替换之后的一个 副本。这也代表着 无论如何 跟以前的 内存地址 基本不会一样了。
print(id(a)) a = a.replace("0","7") print(a) print(id(a)) id() 是用来查询 内存地址的。是内存地址的十进制形式。
split(分割的字符,分割的次数) 分割字符串
最后会返回给我们一个列表。字符或子串.join(字符串或字符的列表或元组)
合并字符串或字符,是按照你提供的 字符或子串为 连接符进行合并的。print("||".join(["1","2"])) # 列表 print("||".join(("1","2"))) # 元组
7. startswith(子串,开始下标,结束下标)
判断字符串是否以子串开头 endswith(子串,开始下标,结束下标)
判断字符串是否以子串结尾
print(a.startswith("7"))