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赛模拟题一 - 嘉立…...

电影《潜行》中说的蜜罐是什么(网络安全知识)
近期刘德华、彭于晏主演的电影《潜行》在网上掀起了轩然大波,电影中有提到网络蜜罐,这引起了很多观众的疑问,蜜罐到底是什么? 从字面意思上来看,蜜罐就是为黑客设下的诱饵。这是一种具有牺牲性质的计算机系统ÿ…...

基于 UniAPP 社区论坛项目多端开发实战
社区论坛项目多端开发实战 基于 UniAPP 社区论坛项目多端开发实战一、项目准备1.1 ThinkSNS 简介及相关文档1.2 使用 UniAPP 构建项目1.3 构建项目文件结构1.4 配置页面 TabBar 导航1.5 使用 npm 引入 uView UI 插件库 二、首页功能实现2.1 首页 header 广告位轮播图功能实现2.…...

Ubuntu 22.04 安装MySql
MySQL是非常常用的关系型数据库,无论是大厂还是小厂,都有它的身影。最大的优点是免费,安装起来也比较简单。 MySQL的架构 画了个简图,描述了下MySQL的架构。 其中的比较有趣的点在于连接池和存储引擎。连接池缓存了数据库和客户端的TCP连接,以减少建立连接的开销。存储引…...

Centos常用命令整理,常用的比较全了
目 录 1、更改文件拥有者 2、修改权限 3、修改⽂件⽇期 4、链接⽂件 5、⽇期操作 6、显⽰⽇历 7、显⽰⽂件头部 8、显⽰⽂件尾部 9、显⽰⽤户标识 10、查看当前登录的⽤户 11、显⽰都谁登录到机器上 12、显⽰当前终端上的⽤户名 13、寻找⽂件…...

专业137总分439东南大学920专业基础综合考研经验电子信息与通信电路系统芯片
我本科是南京信息工程大学,今年报考东南大学信息学院,成功逆袭,专业137,政治69,英语86,数一147,总分439。以下总结了自己的复习心得和经验,希望对大家复习有一点帮助。啰嗦一句&…...

C++总结笔记
1. 简介 1、面向对象程序设计 面向对象的四大特性 1)封装 2)继承 3)多态 4)抽象 2、标准库 标准C由三个部分组成 1)核心语言:提供了所有的构件块 2)C标准库:提供了大量的函…...

数据库重点简答题
文章目录(持续更新) 数据库重点简答题📣一、SQL语言的作用?📣二、说一下你对ER图的认识?📣三、数据库中的三个模型?📣四、数据库基本表和视图的区别和联系?&a…...

Cmake(1)——Cmake的基本介绍和原理、Cmake的安装、如何使用Cmake构建项目
Cmake的基本介绍和原理、Cmake的安装、如何使用Cmake构建项目 插播!插播!插播!亲爱的朋友们,我们的Cmake课程上线啦!感兴趣的小伙伴可以去下面的链接学习哦~ https://edu.csdn.net/course/detail/39261 1、Cmake的基…...

Spring Boot程序的打包与运行:构建高效部署流程
引言 在现代应用开发中,高效的打包和部署流程对于项目的开发、测试和上线至关重要。Spring Boot作为一种快速开发框架,提供了方便的打包工具和内嵌式的Web服务器,使得打包和运行变得更加简单。本文将研究在Spring Boot应用中如何进行打包&am…...

【Linux取经路】初探进程地址空间
文章目录 一、历史问题回顾二、语言层面的地址空间2.1 验证 三、虚拟地址的引入3.1 初步解释这种现象——引入地址空间的概念3.2 再来粗粒度理解上面的现象 四、细节解释4.1 地址空间究竟是什么?4.2为什么要有地址空间4.3 页表4.3.1 CR3寄存器4.3.2 页表是由页表项组…...

.net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
像java使用autowrite一样使用 1、前提先注册到ioc容器当中 builder.Services.AddScoped 2、nuget引入AutoWrite4Net 3、启用 //启用自动注入 app.UseAutoWrite(); 4、在类上使用注解 [StartAutoWrite] public class NacosController : ControllerBase 5、实例上使用注解 …...