【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://xiahunao.cn/news/2661011.html

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

相关文章

【经验分享】日常开发中的故障排查经验分享(一)

目录 简介CPU飙高问题1、使用JVM命令排查CPU飙升100%问题2、使用Arthas的方式定位CPU飙升问题3、Java项目导致CPU飙升的原因有哪些&#xff1f;如何解决&#xff1f; OOM问题&#xff08;内存溢出&#xff09;1、如何定位OOM问题&#xff1f;2、OOM问题产生原因 死锁问题的定位…

【力扣】20.有效的括号

家人们&#xff0c;看这排序&#xff0c;一看就很简单&#xff0c;对吧&#xff1f;不对&#xff0c;我觉得还挺不是很容易的&#xff0c;哈哈哈。 题解&#xff1a; 在看题目的时候&#xff0c;我一开始的解题思路就挺复杂的。题目说了”左括号必须以正确的顺序闭合“&#x…

PyTorch深度学习实战(29)——神经风格迁移

PyTorch深度学习实战&#xff08;29&#xff09;——神经风格迁移 0. 前言1. 神经风格迁移原理1.1 模型介绍1.2 GramMatrix 的重要性 2. 神经风格迁移模型构建策略3. 使用 Keras 实现神经风格迁移小结系列链接 0. 前言 神经风格迁移 (Neural Style Transfer) 是一种基于深度学…

C语言中的联合体的由来和存储

一、联合体的由来 1.1. 数据类型的不足 C语言中&#xff0c;基本数据类型只有整型、字符型、浮点型等少数几种&#xff0c;无法满足复杂数据类型的需要。 1.2. 数组的限制 虽然数组可以存储多个同类型的数据&#xff0c;但是数组中的元素个数是固定的&#xff0c;无法动态地…

【51单片机系列】DS18B20温度传感器扩展实验之设计一个智能温控系统

本文是关于DS18B20温度传感器的一个扩展实验。 文章目录 一、相关元件介绍二、实验分析三、proteus原理图设计四、软件设计 本扩展实验实现的功能&#xff1a;利用DS18B20设计一个智能温度控制系统&#xff0c;具有温度上下限值设定。当温度高于上限值时&#xff0c;电机开启&a…

[react]脚手架create-react-app/vite与reac项目

[react]脚手架create-react-app/vite与reac项目 环境问题描述create-react-app 脚手架根据脚手架修改项目结构安装脚手架注入配置文件-config文件夹package.json文件变更删除 serviceWorker.js新增reportWebVitals.js文件更新index.js文件 脚手架creat-react-app 缺点 vite 脚手…

Java技术栈 —— Nginx的使用

Java技术栈 —— Nginx的使用 一、认识Nginx二、搭建Nginx环境2.1 在Ubuntu上安装Nginx 三、使用Nginx3.1 配置负载均衡(HTTP) 一、认识Nginx 企业需要运行多个相同的副本&#xff0c;并将负载分散在整个系统集群上&#xff0c;为了高性能的负载均衡&#xff0c;引入了Nginx代…

阿里云30个公共云地域、89个可用区、5个金融云和政务云地域

阿里云基础设施目前已面向全球四大洲&#xff0c;公共云地域开服运营30个公共云地域、89个可用区&#xff0c;此外还拥有5个金融云、政务云地域&#xff0c;并且致力于持续的新地域规划和建设&#xff0c;从而更好的满足用户多样化的业务和场景需求。伴随着基础设施的加速投入和…

[RoarCTF2019] TankGame

不多说&#xff0c;用dnspy反编译data文件夹中的Assembly-CSharp文件 使用分析器分析一下可疑的FlagText 发现其在WinGame中被调用&#xff0c;跟进WinGame函数 public static void WinGame(){if (!MapManager.winGame && (MapManager.nDestroyNum 4 || MapManager.n…

【C语言】数据结构——排序(一)

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读&#xff1a;数组打印与交换1. 插入排序1.1 直接插入排序1.1.1 基本思想1.1.2 实现代码1.1.3 图解 1.2 希尔排序1.2.1…

机器人中的数值优化之无约束优化

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 本文ppt来自深蓝学院《机器人中的数值优化》

人工智能的新篇章:深入了解大型语言模型(LLM)的应用与前景

LLM&#xff08;Large Language Model&#xff09;技术是一种基于深度学习的自然语言处理技术&#xff0c;旨在训练能够处理和生成自然语言文本的大型模型。 LLM 技术的核心思想是使用深度神经网络&#xff0c;通过大规模的文本数据预训练模型&#xff0c;并利用这些预训练模型…

伪装目标检测的算术不确定性建模

Modeling Aleatoric Uncertainty for Camouflaged Object Detection 伪装目标检测的算术不确定性建模背景贡献实验方法Camouflaged Object Detection Network&#xff08;伪装目标检测框架&#xff09;Online Confidence Estimation Network&#xff08;在线置信度估计网络&…

【Week-P3】CNN天气识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结6.1 不改变学习率的前提下&#xff0c;将训练epoch分别增加到60、70、80、90&#xff08;1&#xff09;epoch 50 的训练情况如下&#xff1a;&#xff08;2&#xff09;epoch 60 的训…

Redis哨兵sentinel

是什么&#xff1f; 哨兵巡查监控后台master主机是否故障&#xff0c;如果故障根据投票数自动将某一个slave库变为master&#xff0c;就行对外服务&#xff0c;称为无人值守运维 能干嘛&#xff1f; 主从监控&#xff1a;监控主从redis库是否正常工作 消息通知&#xff1a;…

C++面向对象(OOP)编程-C++11新特性详解

C11作为一个重要的版本&#xff0c;引入了很多新的特性&#xff0c;解决了C语言本身很多遗留的内存泄露问题&#xff0c;并且提供了很多比较灵活的用法。引入的auto&#xff0c;智能指针、线程机制都使得C语言的灵活性、安全性、并发性有了很大的提升。 本文会比较详细的介绍C1…

YOLOv5改进 | 2023注意力篇 | FocusedLinearAttention聚焦线性注意力

一、本文介绍 本文给大家带来的改进机制是FLAttention&#xff08;聚焦线性注意力&#xff09;是一种用于视觉Transformer模型的注意力机制(但是其也可以用在我们的YOLO系列当中从而提高检测精度)&#xff0c;旨在提高效率和表现力。其解决了两个在传统线性注意力方法中存在的…

MySQL 数据库归档工具pt-archive 与归档数据的安全存储 与 为什么每次归档都少数...

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;共1780人左右 1 2 3 4 5&#xff0…

java球队信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web球队信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5…

开源预约挂号平台 - 从0到上线

文章目录 开源预约挂号平台 - 从0到上线演示地址源码地址可以学到的技术前端技术后端技术部署上线开发工具其他技术业务功能 项目讲解前端创建项目 - 安装PNPM - 使用VSCODE - 安装插件首页顶部与底部 - 封装组建 - 使用scss左右布局中间内容部分路由 - vue-routerBANNER- 走马…