【Python基础】字符串
文章目录
- @[toc]
- 什么是字符串
- 索引
- 示例
- 索引越界
- 切片
- 语法
- 示例
- 字符串方法
- `find()`方法
- `rfind()`方法
- `count()`方法
- `replace()`方法
文章目录
- @[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 start
和end
默认值为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
相关文章:

【Python基础】字符串
文章目录 [toc]什么是字符串索引示例索引越界 切片语法示例 字符串方法find()方法rfind()方法count()方法replace()方法 个人主页:丷从心 系列专栏:Python基础 什么是字符串 如下定义的变量url存储的是字符串类型的值 url www.baidu.com print(url)u…...

Linux中proc文件系统相关介绍
proc虚拟文件系统的工作原理 linux 内核是一个非常庞大、非常复杂的一个单独的程序,对于这样一个程序来说调试是非常复杂的。像kernel这样庞大的项目,给里面添加或者修改一个功能是非常麻烦的,因为添加一个功能可能会影响其他已经有的功能。…...
深入理解 YOLOv8:解析.yaml 配置文件目标检测、实例分割、图像分类、姿态检测
目录 yolov8导航 YOLOv8(附带各种任务详细说明链接) 引言 YOLOv8配置文件概览 yolov8.yaml 1. nc 2. scales 3. backbone 4. head yolov8-seg.yaml 1. 参数部分 2. 骨架(Backbone)部分 3. 头部(Head&…...

oracle与mysql的分析函数(窗口函数)
分析函数定义 在SQL语句中,很多查询语句需要进行GROUP BY分组汇总,但是一旦经过分组,SELECT返回的记录数就会减少。为了保留所有原始行记录,并且仍可以进行分组数据分析,分析函数应运而生。 Oracle 8i 版本开始支持窗…...
《微信小程序开发从入门到实战》学习六十五
6.4 交互API 6.4.5 页面滚动API 使用wx.pageScrollTo接口可使页面自动滚动到目标位置。该接口介绍Object参,该参支持属性如下所示: scrollTop:必填,滚动到页面的目标位置,单位为px duration:滚动动画的…...

开箱即用的企业级数据和业务管理中后台前端框架Ant Design Pro 5的开箱使用和偏好配置
Ant Design Pro 介绍 Ant Design Pro 是一个开箱即用的企业级前端解决方案,基于 Ant Design 设计体系,提供了丰富的组件和功能,帮助开发者更快速地开发和部署企业级应用。 Ant Design Pro 使用 React、umi 和 dva 这三个主要的前端开发技术…...

怎么用Facebook找客户?Facebook开发客户攻略分享
跨境人最了解的电商平台之一就是Facebook了,说到Facebook,它拥有超过20亿的活跃用户,所以你可以在这个平台上面找到更多的潜在客户。今天的文章就主要分享用Facebook开发客户的方法,全是干货,建议收藏! 一、…...

【Vue2+3入门到实战】(12)自定义指令的基本语法(全局、局部注册)、 指令的值、v-loading的指令封装 详细示例
目录 一、学习目标1.自定义指令 二、自定义指令1.指令介绍2.自定义指令3.自定义指令语法4.指令中的配置项介绍5.代码示例6.总结 三、自定义指令-指令的值1.需求2.语法3.代码示例 四、自定义指令-v-loading指令的封装1.场景2.需求3.分析4.实现5.准备代码 六、自定义指令总结 一、…...

Android studio socket客户端应用设计
一、XML布局设计: <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com…...
【UTC格式】Oracle低版本实现UTC格式转换
Oracle低版本实现UTC格式转换 文章目录 Oracle低版本实现UTC格式转换前言一、创建 FUNCTION(GET_UTC_DATE)二、使用步骤1.跨年日期2.跨月日期(判断 闰年 or 平年、用于计算2月天数,正常大小月)3.跨日日期3.正常日期 总…...

[BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
1.问题描述 使用yarn调度任务时,在CapacityScheduler页面上单击叶队列(或子队列)时,不会显示应用程序任务信息,root队列可以显示任务。此外,FairScheduler页面是正常的。 No matching records found2.原…...

Java 缓存中间件
Java 缓存中间件 关键词:Spring Cache、J2Cache、JetCache 一 、JSR 107 JSR107 中制订了 Java 缓存的规范。 因此,在很多缓存框架、缓存库中,其 API 都参考了 JSR 107 规范。 img Java Caching 定义了 5 个核心接口 CachingProvider - 定义…...

使用cmake配置matplotlibcpp生成VS项目
https://gitee.com/feboreigns/matplotlibcpp 这篇文章需要一些cmake基础,python基础,visualstudio基础 准备环境 注意如果在VS平台使用必须要手动下载python,不能使用conda里面的,比如3.8版本,因为conda里面没有py…...

Android : 画布绘制矩形和文字 让其居中显示简单应用
示例图: CenterView.java package com.example.demo;import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.Log; import android.view.View;public class Center…...

科研学习|论文解读——融合类目偏好和数据场聚类的协同过滤推荐算法研究
论文链接(中国知网): 融合类目偏好和数据场聚类的协同过滤推荐算法研究 - 中国知网 (cnki.net) 摘要:[目的/意义]基于近邻用户的协同过滤推荐作为推荐系统应用最广泛的算法之一,受数据稀疏和计算可扩展问题影响&#x…...

算法学习系列(十五):最小堆、堆排序
目录 引言一、最小堆概念二、堆排序模板(最小堆)三、模拟堆 引言 这个堆排序的话,考的还挺多的,主要是构建最小堆,并且在很多情况下某些东西还用得着它来优化,比如说迪杰斯特拉算法可以用最小堆优化&#…...

HCIA-Datacom题库(自己整理分类的)——OSPF协议多选
ospf的hello报文功能是 邻居发现 同步路由器的LSDB 更新LSA信息 维持邻居关系 下列关于OSPF区域描述正确的是 在配置OSPF区域正确必须给路由器的loopback接配置IP地址 所有的网络都应在区域0中宣告 骨干区域的编号不能为2 区域的编号范围是从0.0.0.0到255.255.255.255…...

elasticsearch-hadoop.jar 6.8版本编译异常
## 背景 重新编译 elasticsearch-hadoop 包; GitHub - elastic/elasticsearch-hadoop at 6.8 编译 7.17 版本时很正常,注意设置下环境变量就好,JAVA8_HOME/.... 编译 6.8 版本时(要求jdk8 / jdk9),出现…...
面试经典150题(50-53)
leetcode 150道题 计划花两个月时候刷完,今天(第二十二天)完成了4道(50-53)150: 50.(141. 环形链表)题目描述: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个…...

Jetpack Compose中使用Android View
使用AndroidView创建日历 Composable fun AndroidViewPage() {AndroidView(factory {CalendarView(it)},modifier Modifier.fillMaxWidth(),update {it.setOnDateChangeListener { view, year, month, day ->Toast.makeText(view.context, "${year}年${month 1}月$…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...