当前位置: 首页 > news >正文

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 缓存分块技术

缓存分块是一种内存优化技术&#xff0c;主要用于提高数据的局部性&#xff08;Locality&#xff09;&#xff0c;以减少缓存未命中&#xff08;Cache Miss&#xff09;的次数。在现代计算机体系结构中&#xff0c;处理器&#xff08;CPU&#xff09;的速度通常比内存快得多。因…...

[C#]winform部署openvino官方提供的人脸检测模型

【官方框架地址】 https://github.com/sdcb/OpenVINO.NET 【框架介绍】 OpenVINO&#xff08;Open Visual Inference & Neural Network Optimization&#xff09;是一个由Intel推出的&#xff0c;针对计算机视觉和机器学习任务的开源工具套件。通过优化神经网络&#xff…...

Java中对日期的处理

Java中对日期的处理 这个案例主要掌握&#xff1a; 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 通过提供图形用户界面&#xff0c;使在 Kubernetes 中管理 Helm 版本变得更加容易&#xff0c;这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本&#xff0c;并跟踪其状态。 本文将探讨 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、查询】

前言 最近在假期实训&#xff0c;但是实在水的不行&#xff0c;三天要学完SSM&#xff0c;实在一言难尽&#xff0c;浪费那时间干什么呢。SSM 之前学了一半&#xff0c;等后面忙完了&#xff0c;再去好好重学一遍&#xff0c;毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…...

Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲

写本章前想起题主初学Labview时面对一个位移台程序&#xff0c;傻傻搞不清局部变量和属性节点值有什么区别&#xff0c;概念很模糊。所以更新这篇文章让大家更具象和深刻的去理解这几个概念&#xff0c;看完记得点赞加关注喔~ 本文程序源代码附在后面&#xff0c;大家可以自行下…...

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模型的神经网络&#xff0c;具有12B个参数。是GitHub和OpenAPI共同开发的编程辅助工具。GitHubCopilot是一款由人工智能驱动的结对编程编辑器&#xff0c;旨在帮助开发人员更加高效地工作。它利用OpenAICodex技术&#xff0c;将开发…...

三大3D引擎对比,直观感受AMRT3D渲染能力

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

k8s之对外服务ingress

一、service 1、service作用 ①集群内部&#xff1a;不断跟踪pod的变化&#xff0c;不断更新endpoint中的pod对象&#xff0c;基于pod的IP地址不断变化的一种服务发现机制&#xff08;endpoint存储最终对外提供服务的IP地址和端口&#xff09; ②集群外部&#xff1a;类似负…...

Ubuntu使用docker-compose安装mysql8或mysql5.7

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

【办公类-21-02】20240118育婴员操作题word打印2.0

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

SpringMVC 文件上传和下载

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

强缓存、协商缓存(浏览器的缓存机制)是么子?

文章目录 一.为什么要用强缓存和协商缓存&#xff1f;二.什么是强缓存&#xff1f;三.什么是协商缓存&#xff1f;四.总结 一.为什么要用强缓存和协商缓存&#xff1f; 为了减少资源请求次数&#xff0c;加快资源访问速度&#xff0c;浏览器会对资源文件如图片、css文件、js文…...

android 13.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能

1.概述 在定制化13.0系统rom定制化开发中,当产品只有一个前置摄像头单摄像头,这时调用相机时就需要默认打开前置摄像头就需要来看调用摄像头这块的代码,屏蔽掉后置摄像头的调用api就可以了,接下来就来具体实现相关功能的开发 2.Camera2 去掉后置摄像头 仅支持前置摄像头功…...

【蓝桥杯EDA设计与开发】立创开源社区分享的关于蓝桥被EDA真题与仿真题的项目分析

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

电影《潜行》中说的蜜罐是什么(网络安全知识)

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

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...