python入门语法 -- 字符串的操作


🍁本篇博客,主要通过对python中,字符串的学习,对字符串知识进行梳理。

字符串的几种表示

在python中,字符串的表示方式,有以下几种

  1. 单引号
var1 = 'hello world'
  1. 双引号
var1 = "hello world"
  1. 三引号
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首字母下标
  1. index()函数:检测某个⼦串是否包含在这个字符串中,
    如果在返回这个⼦串开始的位置下标,否则则报异常。
    语法:字符串序列.index(⼦串, 开始位置下标, 结束位置下标)
    注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
    注:使用频率高于find

实例:

print(var1.index("python"))
print(var1.rindex("python"))    # 功能相同,查找从右侧开始
# print(var1.index("world"))     # 找不到,运行报异常
  1. count():返回某个⼦串在字符串中出现的次数
    字符串序列.count(⼦串, 开始位置下标, 结束位置下标)
    注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

实例:

print(var1.count("and"))
print(var1.count("world"))

二 、修改

修改是对字符串中的内容进行修改。主要有函数:

  1. replace():替换内容
    使用方式:字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
    注意:替换次数如果超出⼦串出现次数,则替换次数为该⼦串出现次数

实例:

var2 = var1.replace("go", "php")
var3 = var1.replace("and", "和", 1)   # 将and替换为和,只替换一次
print(var2)
print(var3)
  1. split():按照指定字符分割字符串。
    使用方式:字符串序列.split(分割字符, num)
    注意:num表示的是分割字符出现的次数。

实例:

var1 = "唱歌|跳舞|rap|篮球"
# var2 = var1.split("|", 2)     # 以|为界,分隔开其他字符串,分隔两次
var2 = var1.split("|")
# 切割后的内容,以列表的形式展示
print(var2)
  1. join():⽤⼀个字符或⼦串合并字符串,即是将多个字符串合并为⼀个新的字符串。
    使用方法:字符或⼦串.join(多字符串组成的序列)

实例:

var3 = ",".join(var2)        # 将列表转化为字符串,并且使用指定符号隔开
print(var3)

三、判断

通过判断可以,检查出字符串的不同的情况,判断后返回的值是布尔类型true或Flase,这里主要举例两个例子
比如:

  1. 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
  1. 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在里面,所以运行不打印

补充

字符串是一种不可变数据类型,如何区分可变类型还是不可变类型,看下文!!
可变类型和不可变类型区别
修改内存地之后有没有发生变化
可变类型 – 没有变化
不可变类型 – 地址变了

在这里插入图片描述


欢迎小伙伴们参考借阅,希望对小伙伴们有一定的帮助
如果觉得不错,请一键三连支持一下博主~~~~

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒-洋洋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值