Python——字符串的基本操作
⼀、 创建
s1 = 'lenovo'
s2 = "QF"
s3 = """hello lenovo"""
s4 = '''hello 亮'''
s5 = """hello
shark
"""
s6 = '''hello
world'''
⼆、简单使⽤
1.\ 转义符
testimony = 'This shirt doesn\'t fit me'
words = 'hello \nshark'
2.+ 拼接
In [1]: file_name= "成功的21个信念"In [2]: suffix = '.txt'In [3]: file_name = file_name + suffixIn [4]: file_name
Out[4]: '成功的21个信念.txt'
拼接只能是 字符串和字符串进⾏操作,不可以⽤ 字符串和 ⼀个字符串类型的对象相加
3.* 复制
In [6]: "-" * 10
Out[6]: '----------'In [7]: print('*' * 10)
**********
三、取值和切⽚
1.字符串 是 Python 中的⼀个 序列类型的数据结构
存放的数据,在其内是有序的。
序列类型的特点:
- 序列⾥的每个数据被称为序列的⼀个元素
- 元素在序列⾥都是有个⾃⼰的位置的,这个位置被称为索引或者叫偏移量,也有叫下标的, 从 0 开始,从左到右依次递增
- 序列中的每⼀个元素可以通过这个元素的索引来获取到
- 获取到序列类型数据中的多个元素需要⽤切⽚的操作来获取
2.通过索引取值,获取单个元素
In [10]: s1 = "shark"In [11]: s1[0]
Out[11]: 's'In [12]: s1[-1]
Out[12]: 'k'In [13]: s1[3]
Out[13]: 'r
3. 切⽚,获取多个元素
[start:end:step]分片
#start 永远是起始索引号
#end 永远是终止索引号
#step 是可选的步长
- 分片操作只包含位于起始索引号位置的元素
- 不包含位于终止索引号的位置的元素
- 同时,起始和终止的意义都是针对于从左向右的顺序来定义的
1.⼀般操作
# 使⽤切⽚获取多个元素
In [15]: s1[0:3]
Out[15]: 'sha'# 起始和结尾的索引号可以省略
In [16]: s1[:3]
Out[16]: 'sha'In [17]: s1[1:]
Out[17]: 'hark'# 索引可以使⽤ 负数
In [18]: s1[2:-1]
Out[18]: 'ar'
2.使⽤步⻓
- 步⻓就是每数⼏个取⼀个的意思
- 步⻓是正数时,是从左向右开始操作
- 步⻓是负数时,是从右向左操作
In [19]: s2 = 'abcdefg'In [20]: s2[::2]
Out[20]: 'aceg'In [21]: s2[::-1]
Out[21]: 'gfedcba'In [22]: s2[::-2]
Out[22]: 'geca'
四、字符串⽅法
1.统计序列数据的⻓度
就是获取⼀个序列数据的元素个数,这个适⽤于所有的序列类型的数据,⽐如 字符串、列表、元组。
# 获取字符串的⻓度,包含空格和换⾏符
In [25]: s3 = "a \n\t"In [26]: len(s3)
Out[26]: 4
- \n 是⼀个换⾏符
- \t 是⼀个 Tab 键
2.in 成员判断
In [39]: line = 'Size: 8192 MB'In [40]: if 'Size' in line:...: print(line)...:Size: 8192 MB
注意: 空的字符串总是被视为任何其他字符串的⼦串,因此"" in "abc" 将返回 True。
3.strip() 去除字符串两端的空⽩字符(空格、\t、 \n)
Out[41]: line = ' Size: 8192 MB'In [42]: line.strip()
Out[42]: 'Size: 8192 MB'
4.split() 分割
默认使⽤空⽩字符作为分隔符(空格、\t、 \n) 和 shell 中的 awk ⼀样道理
In [47]: line
Out[47]: ' Size: 8192 MB'In [48]: line.split()
Out[48]: ['Size:', '8192', 'MB']In [49]: s
Out[49]: '\tab\n'In [50]: s.split()
Out[50]: ['ab']可以指定分隔符
In [51]: line.split(':')
Out[51]: [' Size', ' 8192 MB']In [52]: line.split(': ')
Out[52]: [' Size', '8192 MB']
5.strip() 移除字符串两端的空⽩字符**
In [71]: line = ' Size: 8192 MB'In [72]: line.strip()
Out[72]: 'Size: 8192 MB'strip() 返回的是字符串,所以可以连续操作
In [73]: line.strip().split(': ')
Out[73]: ['Size', '8192 MB']In [74]: line
Out[74]: ' Size: 8192 MB'In [75]: k, v = line.strip().split(': ')In [76]: k
Out[76]: 'Size'In [77]: v
Out[77]: '8192 MB'
6.replace() 替换
In [65]: line = ' <strong>10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥</strong></p>'In [66]: line.strip() ## 先去除两端空⽩字符
Out[66]: '<strong>10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥</strong></p>'In [67]: line.strip().replace('strong>', '') ##将字符串 strong> 替换为空
Out[67]: '<10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥</</p>'In [68]: line.strip().replace('strong>', '')[1:-6]
Out[68]: '10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥'
7.startswith() 判断字符串以什么为开头
In [85]: line = 'Locator: DIMM_A2'In [86]: line.startswith("Locator:")
Out[86]: True
8.endswith() 判断字符串以什么为结尾
In [87]: line = 'Size: 8192 MB'In [88]: line.endswith('MB')
Out[88]: True
五、 字符串的判断
In [1]: s = '123'In [2]: s.isdigit() # 判断是否是纯数字
Out[2]: TrueIn [3]: s1 = '123adb' In [4]: s1.isalnum() # 判断是否是数字和字⺟
Out[4]: TrueIn [5]: s2 = 'adb'In [6]: s2.isalpha() # 判断是否是纯字⺟
Out[6]: TrueIn [7]: s2.encode() # 转换为⼆进制 bytes 类型
Out[7]: b'adb'In [8]: s4 = "亮"
In [9]: s4.encode() # 转换为⼆进制 bytes 类型,默认编码 utf-8
Out[9]: b'\xe4\xba\xae'In [16]: b = s4.encode()In [17]: b.hex() # bytes 转换成 16 进制
Out[17]: 'e4baae'In [18]: b.decode() # bytes 转换成 str,默认编码utf-8
Out[18]: '亮'
相关文章:
Python——字符串的基本操作
⼀、 创建 s1 lenovo s2 "QF" s3 """hello lenovo""" s4 hello 亮 s5 """hello shark """ s6 hello world ⼆、简单使⽤ 1.\ 转义符 testimony This shirt doesn\t fit me words hello \ns…...
【cuda】四、基础概念:Cache Tiled 缓存分块技术
缓存分块是一种内存优化技术,主要用于提高数据的局部性(Locality),以减少缓存未命中(Cache Miss)的次数。在现代计算机体系结构中,处理器(CPU)的速度通常比内存快得多。因…...

[C#]winform部署openvino官方提供的人脸检测模型
【官方框架地址】 https://github.com/sdcb/OpenVINO.NET 【框架介绍】 OpenVINO(Open Visual Inference & Neural Network Optimization)是一个由Intel推出的,针对计算机视觉和机器学习任务的开源工具套件。通过优化神经网络ÿ…...
Java中对日期的处理
Java中对日期的处理 这个案例主要掌握: 1.怎么获取系统当前时间 2.String-->Date 3.Date-->String Import java.text.SimpleDateFormat; Import java.util.Date; public class DateTest01{ public static void main(String[] args) throws Exception{ //获取…...

【Linux install】Ubuntu和win双系统安装及可能遇到的所有问题
文章目录 1.前期准备1.1 制作启动盘1.2关闭快速启动、安全启动、bitlocker1.2.1 原因1.2.2 进入BIOSshell命令行进入BIOSwindows设置中高级启动在开机时狂按某个键进入BIOS 1.2.3 关闭Fast boot和Secure boot 1.3 划分磁盘空间1.3.1 查看目前的虚拟内存大小 2.开始安装2.1 使用…...

Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI
Helm Dashboard 通过提供图形用户界面,使在 Kubernetes 中管理 Helm 版本变得更加容易,这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本,并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…...
【Guava笔记01】Guava Cache本地缓存的常用操作方法
这篇文章,主要介绍Guava Cache本地缓存的常用操作方法。 目录 一、Guava Cache本地缓存 1.1、引入guava依赖 1.2、CacheBuilder类 1.3、Guava-Cache使用案例...

Flink(十三)【Flink SQL(上)SqlClient、DDL、查询】
前言 最近在假期实训,但是实在水的不行,三天要学完SSM,实在一言难尽,浪费那时间干什么呢。SSM 之前学了一半,等后面忙完了,再去好好重学一遍,毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…...

Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲
写本章前想起题主初学Labview时面对一个位移台程序,傻傻搞不清局部变量和属性节点值有什么区别,概念很模糊。所以更新这篇文章让大家更具象和深刻的去理解这几个概念,看完记得点赞加关注喔~ 本文程序源代码附在后面,大家可以自行下…...
openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c
文章目录 openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c概述笔记END openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c 概述 ED25519 签名/验签算法, 现在是最好的. 产生ED25519私钥/公钥 用私钥对明文签名, 得到签名数据 用公钥对明文…...
AI辅助编程工具—Github Copilot
一、概述 Copilot是一种基于Transformer模型的神经网络,具有12B个参数。是GitHub和OpenAPI共同开发的编程辅助工具。GitHubCopilot是一款由人工智能驱动的结对编程编辑器,旨在帮助开发人员更加高效地工作。它利用OpenAICodex技术,将开发…...

三大3D引擎对比,直观感受AMRT3D渲染能力
作为当前热门的内容呈现形式,3D已经成为了广大开发者、设计师工作里不可或缺的一部分。 用户对于3D的热衷,源于其带来的【沉浸式体验】和【超仿真视觉效果】。借此我们从用户重点关注的四个3D视觉呈现内容: 材质- 呈现多元化内容水效果- 展…...

k8s之对外服务ingress
一、service 1、service作用 ①集群内部:不断跟踪pod的变化,不断更新endpoint中的pod对象,基于pod的IP地址不断变化的一种服务发现机制(endpoint存储最终对外提供服务的IP地址和端口) ②集群外部:类似负…...

Ubuntu使用docker-compose安装mysql8或mysql5.7
ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十四)——使用docker-compose安装mysql8或mysql5.7 文章目录 Ubuntu系统环境搭建(十四)——使用docker-compose安装mysql8或mysql5.7MySQL81.新建文件夹2.创建docke…...

【办公类-21-02】20240118育婴员操作题word打印2.0
作品展示 把12页一套的操作题批量制作10份,便于打印 背景需求 将昨天整理的育婴师操作题共享, 因为题目里面有大量的红蓝颜色文字,中大班办公室都是黑白单面手动翻页打印。只有我待的教务室办公室有彩色打印机打印(可以自动双面…...

SpringMVC 文件上传和下载
文章目录 1、文件下载2、文件上传3. 应用 Spring MVC 提供了简单而强大的文件上传和下载功能。 下面是对两者的简要介绍: 文件上传: 在Spring MVC中进行文件上传的步骤如下: 在表单中设置 enctype“multipart/form-data”,这样…...

强缓存、协商缓存(浏览器的缓存机制)是么子?
文章目录 一.为什么要用强缓存和协商缓存?二.什么是强缓存?三.什么是协商缓存?四.总结 一.为什么要用强缓存和协商缓存? 为了减少资源请求次数,加快资源访问速度,浏览器会对资源文件如图片、css文件、js文…...
android 13.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能
1.概述 在定制化13.0系统rom定制化开发中,当产品只有一个前置摄像头单摄像头,这时调用相机时就需要默认打开前置摄像头就需要来看调用摄像头这块的代码,屏蔽掉后置摄像头的调用api就可以了,接下来就来具体实现相关功能的开发 2.Camera2 去掉后置摄像头 仅支持前置摄像头功…...

【蓝桥杯EDA设计与开发】立创开源社区分享的关于蓝桥被EDA真题与仿真题的项目分析
立创开源社区内有几个项目分享了往年 EDA 设计题目与仿真题,对此展开了学习。 【本人非科班出身,以下对项目的学习仅在我的眼界范围内发表意见,如有错误,请指正。】 项目一 来源:第十四届蓝桥杯EDA赛模拟题一 - 嘉立…...

电影《潜行》中说的蜜罐是什么(网络安全知识)
近期刘德华、彭于晏主演的电影《潜行》在网上掀起了轩然大波,电影中有提到网络蜜罐,这引起了很多观众的疑问,蜜罐到底是什么? 从字面意思上来看,蜜罐就是为黑客设下的诱饵。这是一种具有牺牲性质的计算机系统ÿ…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...