🍁本篇博客,主要通过对python中,字符串的学习,对字符串知识进行梳理。
字符串的几种表示
在python中,字符串的表示方式,有以下几种
- 单引号
var1 = 'hello world'
- 双引号
var1 = "hello world"
- 三引号
var1 = """hello world"""
注:三引号进行多行输出,可以实现自动换行
下标的认识
下标,也叫索引,就是编号的意思。⽐如⽕⻋座位号,座位号的作⽤:按照编号快速找到对应的座位。
需要注意的是:索引正序是从零开始的,而逆序是从-1开始
比如:
对于一个字符串我们可以根据,索引取值,拿到想要的字符。索引值放在[]里面。
比如:
var1 = "hello world"
print(var1[2]) # 拿到l
print(var1[5]) # 空格
print(var1[8]) # r
print(var1[-1]) # d
认识字符串后,为了取到,我们想要的子串python中提供了一种操作——切片。
切片操作
切片 : 是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作
不包含结束位置对应的数据,正负整数均可,使用符号[起始下标: 结束下标: 步长],遵寻左闭右开的原则,步长为负,字符串反序输出。
步长是选取间隔,正负整数均可,默认步长为1
var2 = "hello python i love you"
print(var2[0:5]) # 从0开始,到5结束(不会拿到5本身)
print(var2[6:12]) # 从6开始,到12结束(不会拿到12本身)
print(var2[6:12:2]) # 从6开始,到12结束,步长是2(不会拿到12本身)
print(var2[:5]) # 从0开始,到5结束(不会拿到5本身)
print(var2[5:]) # 从5开始,直到结束
print(var2[:]) # 拿取所有
print(var2[::2]) # 从零开始,步长是2,拿取所有
print(var2[-1]) # 拿到最后一个数
print(var2[:-1]) # 从0开始,到最后一个数结束(-1代表最后一个数,不包含-1本身)
print(var2[-3:]) # 从倒数第三个开始,直到结束
print(var2[::-1]) # 从-1开始,倒着打印字符串,步长为1
print(var2[::-2]) # 从-1开始,倒着打印字符串,步长为2
print(var2[:-4:-1]) # 从最后一个数开始,到-4结束,倒着打印字符串,步长为1
结果
字符串常用操作方法
一、查找
所谓字符串查找⽅法即是查找⼦串在字符串中的位置或出现的次数。
在查找中,主要有三个函数如:
1.find()函数:检测某个字符串是否包含在这个字符串中,
如果在,返回这个字符串开始的位置下标,否则则返回-1。
语法:字符串序列.find(⼦串, 开始位置下标, 结束位置下标)
其中:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
实例:
var1 = "hello python and java and go i love you"
print(var1.find("python"))
print(var1.rfind("python")) # 功能与find相同,查找从右侧开始
print(var1.find("world"))
print(var1.find("and", 18, 30)) # 查找到下标为18-30,and首字母下标
- index()函数:检测某个⼦串是否包含在这个字符串中,
如果在返回这个⼦串开始的位置下标,否则则报异常。
语法:字符串序列.index(⼦串, 开始位置下标, 结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
注:使用频率高于find
实例:
print(var1.index("python"))
print(var1.rindex("python")) # 功能相同,查找从右侧开始
# print(var1.index("world")) # 找不到,运行报异常
- count():返回某个⼦串在字符串中出现的次数
字符串序列.count(⼦串, 开始位置下标, 结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
实例:
print(var1.count("and"))
print(var1.count("world"))
二 、修改
修改是对字符串中的内容进行修改。主要有函数:
- replace():替换内容
使用方式:字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
注意:替换次数如果超出⼦串出现次数,则替换次数为该⼦串出现次数。
实例:
var2 = var1.replace("go", "php")
var3 = var1.replace("and", "和", 1) # 将and替换为和,只替换一次
print(var2)
print(var3)
- split():按照指定字符分割字符串。
使用方式:字符串序列.split(分割字符, num)
注意:num表示的是分割字符出现的次数。
实例:
var1 = "唱歌|跳舞|rap|篮球"
# var2 = var1.split("|", 2) # 以|为界,分隔开其他字符串,分隔两次
var2 = var1.split("|")
# 切割后的内容,以列表的形式展示
print(var2)
- join():⽤⼀个字符或⼦串合并字符串,即是将多个字符串合并为⼀个新的字符串。
使用方法:字符或⼦串.join(多字符串组成的序列)
实例:
var3 = ",".join(var2) # 将列表转化为字符串,并且使用指定符号隔开
print(var3)
三、判断
通过判断可以,检查出字符串的不同的情况,判断后返回的值是布尔类型true或Flase,这里主要举例两个例子
比如:
- startswith():检查字符串是否是以指定⼦串开头
使用方法:字符串序列.startswith(⼦串, 开始位置下标, 结束位置下标)
实例:
var2 = "hello and python and hello world"
print(var2.startswith("hello")) # 开头是hello,返回True
print(var2.startswith("and")) # 开头不是and,返回False
print(var2.startswith("and", 6, 20)) # 在索引6-20,开头是and,返回True
- endswith():检查字符串是否是以指定⼦串结尾
实例:
var2 = "hello and python and hello world"
print(var2.endswith("and")) # 结尾不是and,返回False
print(var2.endswith("world")) # 结尾时world,返回True
print(var2.endswith("and", 0, 9)) # 在0到9的索引范围,是and结尾,返回True
相信通过上面的几个例子,我们已经对字符串的操作,有了一定的了解,关于字符操作的函数很多,下面进行一个补充,就不在进行列举,感兴趣的话,大家可以尝试一下
🪶1. capitalize():将字符串第⼀个字符转换成⼤写
🪶2. title():将字符串每个单词⾸字⺟转换成⼤写。
🪶3. upper():将字符串中⼩写转⼤写。
🪶4. lower():将字符串中⼤写转⼩写。
🪶5. strip():删除字符串两侧空⽩字符。
🪶6. isalpha():如果字符串所有字符都是字⺟则返回 True, 否则返回 False。
🪶7. isdigit():如果字符串只包含数字则返回 True 否则返回 False。
🪶8. isalnum():如果字符串所有字符都是字⺟或数字则返 回 True,否则返回False。
🪶9. isspace():如果字符串中只包含空⽩,则返回 True,否则返回 False。
字符串拼接
使用 + 号可以把字符串拼接在一起,比如
print("hello"+"world") # 拼接字符串
成员运算符
in 和 not in 用来判断,字符串,是否包含在另一个字符中,比如:
var1 = "hello python"
if "hello" not in var1:
print("我在里面") # hello在里面,所以运行不打印
补充
字符串是一种不可变数据类型,如何区分可变类型还是不可变类型,看下文!!
可变类型和不可变类型区别
修改内存地之后有没有发生变化
可变类型 – 没有变化
不可变类型 – 地址变了
欢迎小伙伴们参考借阅,希望对小伙伴们有一定的帮助
如果觉得不错,请一键三连支持一下博主~~~~