当前位置: 首页 > news >正文

【Python基础】字符串

文章目录

    • @[toc]
      • 什么是字符串
      • 索引
        • 示例
        • 索引越界
      • 切片
        • 语法
        • 示例
      • 字符串方法
        • `find()`方法
        • `rfind()`方法
        • `count()`方法
        • `replace()`方法

因上努力

个人主页:丷从心

系列专栏:Python基础

果上随缘


什么是字符串

  • 如下定义的变量url存储的是字符串类型的值
url = 'www.baidu.com'
print(url)url = "www.baidu.com"
print(url)
www.baidu.com
www.baidu.com
  • 单引号或双引号括起的数据就是字符串,通过type()函数可以查看其数据类型
url = 'www.baidu.com'
print(type(url))url = "www.baidu.com"
print(type(url))
<class 'str'>
<class 'str'>

索引

  • 索引就是标记内存空间地址的一个数字,也可称为下标
  • 对于字符串str = 'abcdef',索引从 0 0 0开始,在内存中的存储方式如下
索引 0 0 0索引 1 1 1索引 2 2 2索引 3 3 3索引 4 4 4索引 5 5 5
a a a b b b c c c d d d e e e f f f
  • 索引也可以为负数,对于字符串str = 'abcdef',索引为负数时的情况如下
索引 − 1 -1 1索引 − 2 -2 2索引 − 3 -3 3索引 − 4 -4 4索引 − 5 -5 5索引 − 6 -6 6
f f f e e e d d d c c c b b b a a a
示例
  • 通过使用[]加上索引的方式获取对应索引处的数据
str = 'abcdef'print(str[0])
print(str[1])
print(str[2])
a
b
c
str = 'abcdef'print(str[-1])
print(str[-2])
print(str[-3])
f
e
d
索引越界
  • 索引对应内存地址,是有范围的,对于字符串str = 'abcdef',其索引范围为 0 0 0 5 5 5,如果使用索引“ 6 6 6”会发生数组越界,产生异常
str = 'abcdef'print(str[6])
Traceback (most recent call last):File "C:/Users/FOLLOW_MY_HEART/Desktop/Python基础/【Python基础】容器类型/test.py", line 3, in <module>print(str[6])
IndexError: string index out of range

切片

  • 切片就是截取操作对象中一部分数据的操作,例如对于字符串str = 'abcdef',可以通过切片获取到字符串abc
语法
[起始索引:结束索引:步长]
  • 选取的数据范围从“起始索引”开始,到“结束索引”的前一位结束,即不包含结束索引,步长表示选取数据的间隔,不使用步长时默认为 1 1 1
示例
  • 取索引 0 0 0 2 2 2包含的字符,不包含索引 3 3 3
str = 'abcdef'print(str[0:3])
abc
  • 如果“起始索引”为空则表示起始索引为 0 0 0
str = 'abcdef'print(str[:3])
abc
  • 如果“结束索引”为空则表示从起始索引开始一直取到最后一个索引
str = 'abcdef'print(str[3:])
def
  • 取索引 1 1 1到最后一个字符之前的字符
str = 'abcdef'print(str[1:-1])
bcde
  • 2 2 2为步长从索引 0 0 0开始取到最后一个索引结束
str = 'abcdef'print(str[::2])
ace
  • 以上情况都是步长为正数时的情况,如果步长为负,表示从右向左取数据,此时“起始索引”应大于“结束索引”
str = 'abcdef'print(str[3:0:-1])
dcb
    • 此时从右向左取到的是索引 3 3 3到索引 1 1 1包含的字符,不包含索引 0 0 0的字符
  • 从最右取到最左的字符

str = 'abcdef'print(str[::-1])
fedcba

字符串方法

find()方法
str_obj.find(sub, start=None, end=None)
  • 判断字符串sub是否在索引start到索引end内包含在字符串str_obj中,即判断字符串sub是否是字符串str_obj的子串,如果是则返回字符串sub在字符串str_obj中在索引start到索引end内第一次出现处的开始索引,否则返回 − 1 -1 1
  • startend默认值为None,表示从索引 0 0 0到最后一个索引结束
url = 'www.baidu.com'print(url.find('baidu'))
print(url.find('www', 0, 2))
print(url.find('www', 0, 3))
4
-1
0
  • 可以看到,取值范围仍然不含索引end,只到索引end前一位的数据
rfind()方法
str_obj.rfind(sub, start=None, end=None)
  • find()方法类似,只是从最右侧开始查找,返回字符串从最右侧第一次出现处的开始索引
url = 'www.baidu.baidu.com'print(url.rfind('baidu'))
print(url.find('baidu'))
10
4
count()方法
str_obj.count(sub, start=None, end=None)
  • 返回字符串sub在索引start到索引end内在字符串str_obj中出现的次数
url = 'www.baidu.baidu.com'print(url.count('baidu'))
2
replace()方法
str_obj.replace(str1, str2, count=None)
  • 将字符串str_obj中的子串str1替换为字符串str2,不超过conut
  • count默认值为None,表示将字符串str_obj中的子串str1全部替换为字符串str2
url = 'www.baidu.baidu.baidu.com'print(url.replace('baidu', 'goole', 2))
www.goole.goole.baidu.com

http://www.lryc.cn/news/268964.html

相关文章:

  • Linux中proc文件系统相关介绍
  • 深入理解 YOLOv8:解析.yaml 配置文件目标检测、实例分割、图像分类、姿态检测
  • oracle与mysql的分析函数(窗口函数)
  • 《微信小程序开发从入门到实战》学习六十五
  • 开箱即用的企业级数据和业务管理中后台前端框架Ant Design Pro 5的开箱使用和偏好配置
  • 怎么用Facebook找客户?Facebook开发客户攻略分享
  • 【Vue2+3入门到实战】(12)自定义指令的基本语法(全局、局部注册)、 指令的值、v-loading的指令封装 详细示例
  • Android studio socket客户端应用设计
  • 【UTC格式】Oracle低版本实现UTC格式转换
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • Java 缓存中间件
  • 使用cmake配置matplotlibcpp生成VS项目
  • Android : 画布绘制矩形和文字 让其居中显示简单应用
  • 科研学习|论文解读——融合类目偏好和数据场聚类的协同过滤推荐算法研究
  • 算法学习系列(十五):最小堆、堆排序
  • HCIA-Datacom题库(自己整理分类的)——OSPF协议多选
  • elasticsearch-hadoop.jar 6.8版本编译异常
  • 面试经典150题(50-53)
  • Jetpack Compose中使用Android View
  • 《MySQL》事务篇
  • 高阶组件和高阶函数是什么
  • 初步认识API安全
  • MybatisX逆向工程方法
  • 每日一题:LeetCode-LCR 179. 查找总价格为目标值的两个商品
  • SpringBoot 3.2.0 基于Logback定制日志框架
  • 微软发布安卓版Copilot,可免费使用GPT-4、DALL-E 3
  • 【STM32】程序在SRAM中运行
  • docker 部署mysql
  • 科荣AIO ReportServlet存在目录遍历漏洞
  • Ubuntu Desktop 22.04 桌面主题配置