【Python基础】字符串

news2024/11/27 20:32:20

文章目录

    • @[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.coloradmin.cn/o/1341702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode刷题--- 解数独

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主…

泛目录是干什么用的蚂蚁seo泛程序

泛目录是干什么用的蚂蚁seo泛程序目录 泛目录是一种常见的网站优化方法&#xff0c;属于黑帽技术的一种。它的核心原理是利用高权重的网站继承目录&#xff0c;然后快速获得收录与排名。这种方法可以帮助网站在搜索引擎中获得更好的排名&#xff0c;从而吸引更多的流量。 泛目…

学习使用wps将ppt的页面保存为图片的方法

学习使用wps将ppt的页面保存为图片的方法 方案 方案 1、打开ppt&#xff0c;点击文件&#xff0c;另存为&#xff0c;选择文件类型为图片格式&#xff0c;jpg或者png&#xff0c;如下图&#xff1a; 2、点击每张幻灯片

利用MATLAB构建特殊通用矩阵

在MATLAB编程中&#xff0c;经常需要遇到一些特殊的通用矩阵&#xff0c;本篇主要介绍的是MATLAB中可能会用到特殊矩阵。 1、零矩阵 MATLAB使用zeros函数来创建零矩阵&#xff0c;所谓零矩阵就是矩阵中所有元素皆为0的矩阵。zeros函数的调用方式如下所示&#xff1a; &#…

Android 13 - Media框架(28)- MediaCodec(三)

上一节我们了解到 ACodec 执行完 start 流程后&#xff0c;会把所有的 input buffer 都提交给 MediaCodec 层&#xff0c;MediaCodec 是如何处理传上来的 buffer 呢&#xff1f;这一节我们就来了解一下这部分内容。 1、ACodecBufferChannel::fillThisBuffer ACodec 通过调用 A…

【Linux】指令(本人使用比较少的)——笔记(持续更新)

文章目录 ps -axj&#xff1a;查看进程ps -aL&#xff1a;查看线程echo $?&#xff1a;查看最近程序的退出码jobs&#xff1a;查看后台运行的线程组fd 任务号&#xff1a;将后台任务提到前台bg 任务号&#xff1a;将暂停的后台程序重启netstat -nltp&#xff1a;查看服务及监听…

<软考高项备考>《论文专题 - 34 沟通管理(2) 》

3 过程2-管理沟通 3.1 问题 4W1H过程做什么确保项目信息及时且恰当地收集、生成、发布、存储、检索、管理、监督和最终处置的过程作用&#xff1a;促成项目团队与干系人之间的有效信息流动为什么做实现有效率、有效果沟通谁来做项目管理团队/项目团队&#xff08;如果项目规模…

CSS 纵向扩展动画

上干货 <template><!-- mouseenter"startAnimation" 表示在鼠标进入元素时触发 startAnimation 方法。mouseleave"stopAnimation" 表示在鼠标离开元素时触发 stopAnimation 方法。 --><!-- 容器元素 --><div class"container&q…

如何借助边缘网关打造智慧配电房安全方案

配电房是电力系统的重要组成部分&#xff0c;通常设置有各种高压配电装置和箱柜&#xff0c;是企业安全管理的重点。传统的人工巡检和监控总是难以避免疏漏&#xff0c;导致风险隐患的产生和扩大。 随着物联网、边缘计算、设备联动控制等技术的普及应用&#xff0c;佰马针对配电…

B3842 起动电流小,工作频率 可达500kHz的Dc-Dc开关电源芯片

B3842/43/44是专为脱线和Dc-Dc开关电源应用设计的恒频电流型Pwd控制器内部包含温度补偿精密基准、供精密占空比调节用的可调振荡器、高增益混放大器、电流传感比较器和适合作功率MOST驱动用的大电流推挽输出颇以及单周期徊滞式限流欠压锁定、死区可调、单脉冲计数拴锁等保护电路…

一文入门Qt Quick

以下内容为本人的著作&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/dvamU6q5lZQb5hztfD2zNg 初识Qt Quick 很高兴可以来到这一章&#xff0c;终于可以开始讲讲最近几年Qt的热门技术Quick这一块了。 啥是Qt&#xff1…

Qt+Opencv:人脸检测

话接上一篇&#xff0c;我们仍使用在上篇《QtOpencv&#xff1a;Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。 在正式开始本篇之前&#xff0c;我们先说做一下准备工作&#xff1a; 一、opencv官方文档 学习最权威和最可靠的方式&#xff0c;就是阅读官方文档和…

太空中的人形机器人:探索新疆界

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

YOLOv5改进 | 2023Neck篇 | CCFM轻量级跨尺度特征融合模块(RT-DETR结构改进v5)

一、本文介绍 本文给大家带来的改进机制是轻量级跨尺度特征融合模块CCFM&#xff08;Cross-Scale Feature Fusion Module&#xff09;其主要原理是&#xff1a;将不同尺度的特征通过融合操作整合起来&#xff0c;以增强模型对于尺度变化的适应性和对小尺度对象的检测能力。我将…

SolidWorks高级装配技能

SolidWorks高级装配技能有协调技能&#xff0c;配合计算速度:关系协调(巧合、平行)&#xff0c;逻辑配合(宽度、凸轮、齿轮)&#xff0c;距离/角度配合&#xff0c;有限配合&#xff0c;使用子组件。 使用子组件根据产品的层次结构组织产品&#xff0c;避免将所有零件添加到一个…

代码随想录-刷题第四十一天

343. 整数拆分 题目链接&#xff1a;343. 整数拆分 思路&#xff1a;动态规划五步曲 dp[i]&#xff1a;拆分数字i&#xff0c;可以得到的最大乘积为dp[i]。 递推公式&#xff1a;dp[i] max(dp[i], max((i - j) * j, dp[i - j] * j)) 从1遍历j&#xff0c;有两种渠道得到dp[…

【STM32】程序在SRAM中运行

程序在RAM中运行 1、配置内存分配。 2、修改跳转文件 FUNC void Setup(void) { SP _RDWORD(0x20000000); PC _RDWORD(0x20000004); } LOAD RAM\Obj\Project.axf INCREMENTAL Setup(); 3、修改下载ROM地址和RAM地址&#xff1b; 中断向量表映射 中断向量表映射到SRA…

需求分析 :不得不重新去面对的一关。

软件需求分析 背景 深入需求产生的背景明确项目目标了解用户群体 需求优先级 需求的分类与整理明确需求优先级让团队成员都参与到需求分析中来&#xff0c;增加团队合作能力与效率 编写需求文档 整理好的需求编写成详细的需求文档包括需求的描述、输入/输出格式、功能流程…

Oracle-审计表AUD$无法正常清理数据问题

问题背景: 用户通过数据库管理审计日志包DBMS_AUDIT_MGMT里面的存储过程CREATE_PURGE_JOB创建了定期清理审计日志数据的job&#xff0c;job每1小时执行一次&#xff0c;清理1天以前的审计表数据&#xff0c;运行了一段时间后&#xff0c;用户发现审计表AUD$里面的数据并没有减少…

STL——list容器

目录 1.list基本概念 2.list构造函数 3.list赋值和交换 4.list大小操作 5.list插入和删除 6.list数据存取 7.list反转和排序 8.排序案例 1.list基本概念 功能&#xff1a;将数据进行链式存储。 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&…