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

Python 中字符串的常用操作都有哪些?

在 Python 中字符串的表达方式有四种

一对单引号
一对双引号
一对三个单引号
一对三个双引号
a = ‘abc’
b= “abc”
c = ‘’‘abc’’’
d = “”“abc”""
print(type(a)) # <class ‘str’>
print(type(b)) # <class ‘str’>
print(type©) # <class ‘str’>
print(type(d)) # <class ‘str’>

单双引号混合使用
a = “LiMing say ‘nice to meet you’”

同样也可以通过转义的方式不用在里面写双引号

a = “LiMing say “nice to meet you””
print(a)

总结就是需要外面用了双引号,里面需要引用的语句可以用单引号括起来,反之亦然。

通常情况根据个人喜好,基本都是使用单引号或者双引号。有些特殊情况,比如需要表示多行时,可以选择三个单(双)引号,并且无序用 \ 进行转移,可直接使用单引号和双引号。

a = ‘’’
My Name is 阿亮,
Let’s say ‘Hello’
‘’’
print(a)

字符串的下标和切换
下标:字符串是一个个字符拼接而成,下标可以理解为每个字符的编号,从 0 开始依次类推。

作用:通过下标去操作字符串中的元素

H的下标为0, e的下标为1 …依次类推

a = ‘HelloWorld’

获取字符串a中下标为4的元素

print(a[4]) # o 下标为4的元素为o

修改字符串中的元素是不是可以直接赋值呢? 例如:

a = ‘HelloWorld’

a[4] = ‘k’
print(a)

上面的代码运行之后发现报错。

TypeError: ‘str’ object does not support item assignment

原因是因为: 字符串一旦创建之后,里面的元素是不可以修改的。

所以字符串是无法直接进行修改的。

字符串运算
字符串运算中用到了 + 、*、>、<、!= 、= 等逻辑运算符。

字符串的相加操作,也可以理解为拼接操作。例如:

a = ‘Hello’ + ’ World’
print(a) # Hello World

也可以写成

a = ‘Hello’ ’ World’
print(a) # Hello World

字符串的乘法操作,可以理解为克隆操作,字符串只能与整数(n)想乘,代表克隆 n 个字符串。

a = ‘a’
print(a * 2) # aa
b = ‘-’
print(b * 10) # ----------

切片
字符串的切片也称为字符串截取。 所有操作都是通过字符串的下标进行操作的。

用法:字符串 [开始索引(start):结束索引(end):步长(step)(默认 1)]

步长(step):每隔(step-1)个取一个元素,当 step 为负数时,代表从右向左取元素,

a = ‘abcdefghijklmn’

从下标1开始 到4结束 进行切片 (包括1,不包括4,即左开又闭)

print(a[1:4]) # bcd
print(a[1:8]) # bcdefgh
print(a[1:8:2])# 步长为2, 结果:bdfh

当补偿为负数时,代表逆向截取。 初始从坐标8开始,每隔一个元素取一个值,到下标为1时结束

print(a[8:1:-2]) # igec

字符串的常用操作
这里以代码 + 注释的方式,展示几个常用的字符串操作。

a = ’ Hello World ’

获取字符串的长度

print(len(a)) # 13

删除字符串两边的空格

print(a.strip()) # Hello World

删除左边的空格

print(a.lstrip()) # Hello World (只删除左边的空格)

删除字符串右边的空格

print(a.rstrip()) # Hello World

通过指定连接符 链接字符串

lst = [‘LiMing’, ‘Tom’]
print(’***’.join(lst)) # LiMing***Tom

首字母大写

m = ‘hello world’
print(m.capitalize()) # Hello world

返回标题化字符串,即每个单词首字母大写

print(m.title()) # Hello World

打印输出字符,将字符串放在中间,

center(width, fillchar) width: 字符串的总长度, fillchar:填充字符

print(a.center(20, ‘*’)) # *** Hello World ****

是否以xxx开头

n = ‘Hello’
print(n.startswith(‘H’)) # True

是否以xxx结尾

print(n.endswith(‘o’)) # True

字符串是全纯英文字符

print(a.isalpha()) # False , 因为字符串a中 ’ Hello World ’ 有空格,因此返回False
print(‘HelloWorld’.isalpha()) #True

判断字符串中是否全部为数字或者英文

print(‘Hello2World’.isalnum()) # True
print(‘123’.isalnum()) # True
print(‘abc&11’.isalnum()) # False

判断是否为整数

print(‘123’.isdigit()) # True
print(‘1.23’.isdigit()) # False

判断字符是否全为小写

print(‘abc’.islower()) # True

判断字符是否全为大写

print(‘Abc’.isupper()) # False
print(‘ABC’.isupper()) # True

字符串小写转大写

print(‘abc’.upper()) # ABC

字符串大写转小写

print(‘ABC’.lower()) # abc

字符串的替换

b = ‘aabbcc’.replace(‘a’, ‘m’)
print(b) # mmbbcc

1 代表替换的个数

b = ‘aabbcc’.replace(‘a’, ‘m’, 1)
print(b) # mabbcc

split 字符串切割,默认空格切割

print(‘aa bb cc’.split()) # [‘aa’, ‘bb’, ‘cc’]
print(‘ab,cd,ef’.split(’,’)) # [‘ab’, ‘cd’, ‘ef’]

字符串换行分割

a = “”"
My Name is ‘762459510,
欢迎添加
“”"
print(a.splitlines()) # [’’, " My Name is ‘762459510’,", ’ 欢迎添加’, ’ ']

字符串的查找
字符串查找常用的方法用 index、find

两者功能相似,区别在于 find 查找不到元素时返回 -1, 不会影响程序运行,而 index 则会抛出异常。

a = ‘abcdef’

查找到元素返回对应的下标

print(a.find(‘c’)) # 2
print(a.find(‘h’)) # -1

print(a.index(‘c’)) # 2
print(a.index(‘h’)) # 抛出异常,ValueError: substring not found

rfind: 类似于 find () 函数,不过是从右边开始查找;返回字符串最后一次出现的位置,如果没有匹配项则返回 - 1 。rindex 同理
a = ‘acmncd’

从右边开始计算,返回第一个匹配到的下标

print(a.rfind(‘c’)) # 4
print(a.rindex(‘c’)) # 4

字符串的格式化
name = ‘762459510’

%s 用于输出字符串

print(‘我的月球号是: %s’ % name)
age = 18

%d 用于输出十进制数字

print(‘我的年龄是:%d’ % age)
money = 1.23

%f 浮点数,默认显示小数点后6位

print(‘我身上有:%f 元’ % money )

指定小数点后的位数

print(‘我身上有:%.2f 元’ % money )

format 操作
除了使用 % 进行格式化,也可以使用 format

print(’{} {}’.format(‘Hello’, ‘World’)) # Hello World
print(’{0} {1}’.format(‘Hello’, ‘World’)) # Hello World

print(’{1}, {0}, {1}’.format(‘A’, ‘B’)) #B, A, B

print(‘今年是 {}年.’.format(2022)) # 今年是 2022年.

相关文章:

Python 中字符串的常用操作都有哪些?

在 Python 中字符串的表达方式有四种 一对单引号 一对双引号 一对三个单引号 一对三个双引号 a ‘abc’ b “abc” c ‘’‘abc’’’ d “”“abc”"" print(type(a)) # <class ‘str’> print(type(b)) # <class ‘str’> print(type©) # <…...

FFmpeg 硬件编码加速文档介绍

介绍 硬件访问:许多平台提供了对专用硬件的访问,这些硬件可以用于执行解码、编码或过滤等视频相关操作。 性能与资源使用:使用硬件可以加快某些操作的速度或减少其他资源(特别是CPU)的使用,但可能会产生不同的结果或质量较低,或带来在使用纯软件时不存在的额外限制。 硬…...

【Matlab函数分析】imread从图形文件读取图像

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…...

零基础光速入门AI绘画,SD保姆攻略

前言 大家好&#xff0c;我是AI绘画咪酱。一名AIGC狂热爱好者&#xff0c;目前正在AI绘画领域进行深入的探索。 我花了一个月时间把SD研究了一遍&#xff0c;秉持着用有趣、易懂的文字让小白也可以零基础光速使用SD&#xff08;stable diffusion&#xff09;入门AI绘画&#…...

详细配置SQL Server的链接服务器(图文操作Mysql数据库)

目录 前言1. MySQL ODBC 驱动2. 配置 SQL Server 链接服务器3. 彩蛋前言 此处配置以及安装没有什么理论知识 所以直奔主题,跟着以下步骤配置安装即可 需求:准备在10.197.0.110中链接外部的10.197.0.96的mysql数据源 已默认在10.197.0.96中安装了MySQL数据库并且知道其连接信…...

DDD学习笔记五

模型引力场&#xff1a;聚合 强作用力体现&#xff1a; 某个领域模型是另一些模型存在的前提&#xff0c;没有前者&#xff0c;后者就失去了生存的意义。 一组领域模型之间存在关联的领域逻辑&#xff0c;任何时候都不能违反。 一组领域模型必须以一个完整的、一致的状态呈现给…...

CAN报文的发送类型-OnChange、OnWrite、IfActive、Repetition

CAN报文的发送类型分为基本发送类型和混合发送类型两大类 CAN基本发送类型包括Cyclic周期发送、OnChange变化时发送、OnWrite写入时发送和IfActive有效时发送。基本发送类型中的Cyclic称为周期型,而其他3个类型称为事件型(Event)。发送次数是通过定义Repetition重复次数来实…...

神经网络在机器学习中的应用:手写数字识别

机器学习是人工智能的一个分支&#xff0c;它使计算机能够从数据中学习并做出决策或预测。神经网络作为机器学习的核心算法之一&#xff0c;因其强大的非线性拟合能力而广泛应用于各种领域&#xff0c;包括图像识别、自然语言处理和游戏等。本文将介绍如何使用神经网络对MNIST数…...

QT拖放事件之四:自定义拖放操作-利用QDrag来拖动完成数据的传输-案例demo

1、核心代码 #include "Widget.h" #include "ui_Widget.h" #include "MyButton.h"Widget::Widget(QWidget *parent): QWidget...

Spring Boot应用的部署与扩展

Spring Boot应用的部署与扩展 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 Spring Boot作为现代化Java应用的首选框架之一&#xff0c;以其简化的配置…...

Spring底层原理之bean的加载方式八 BeanDefinitionRegistryPostProcessor注解

BeanDefinitionRegistryPostProcessor注解 这种方式和第七种比较像 要实现两个方法 第一个方法是实现工厂 第二个方法叫后处理bean注册 package com.bigdata1421.bean;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.…...

大数据面试题之Spark(5)

Spark SQL与DataFrame的使用? Sparksql自定义函数?怎么创建DataFrame? HashPartitioner和RangePartitioner的实现 Spark的水塘抽样 DAGScheduler、TaskScheduler、SchedulerBackend实现原理 介绍下Sparkclient提交application后&#xff0c;接下来的流程? Spark的几种…...

springboot笔记示例六:fastjson2集成

springboot笔记示例六&#xff1a;fastjson2集成 本文md下载 https://download.csdn.net/download/a254939392/89491102本文md文档下载地址 #springboot json官方说明 https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-json.htmlsprin…...

VLOOKUP函数在表格的简单运用-两个表匹配

1.什么是VLOOKUP&#xff1f; VLOOKUP是Excel中的一个内置函数&#xff0c;主要用于在区域或表格的首列查找指定的值&#xff0c;并返回该行中其他列的值。它特别适用于跨表格数据匹配 2.函数运用 2.1.这边两个表取名a表和b表&#xff0c;做为我们的实例表。 表格a包含&…...

http.cookiejar.LoadError: Cookies file must be Netscape formatted,not JSON.解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

逻辑操作符

目录 && --- 逻辑与操作符 || --- 逻辑或操作符 && --- 逻辑与操作符 逻辑与操作符有并且的意思&#xff0c;一般用于判断语句中 逻辑与操作符运行规则是都要为真&#xff0c;才会继续执行或计算 360笔试题&#xff1a; 有关前置(--)&#xff0c;后置(-…...

Java调用第三方接口的秘籍:技巧、案例与最佳实践

Java调用第三方接口的秘籍&#xff1a;技巧、案例与最佳实践 在Java开发中&#xff0c;调用第三方接口是一项常见的任务。无论是与外部系统交互、集成其他服务&#xff0c;还是调用远程API获取数据&#xff0c;掌握有效的第三方接口调用技巧都是至关重要的。本文将深入剖析Jav…...

【机器学习】机器学习重要方法——深度学习:理论、算法与实践

文章目录 引言第一章 深度学习的基本概念1.1 什么是深度学习1.2 深度学习的历史发展1.3 深度学习的关键组成部分 第二章 深度学习的核心算法2.1 反向传播算法2.2 卷积神经网络&#xff08;CNN&#xff09;2.3 循环神经网络&#xff08;RNN&#xff09; 第三章 深度学习的应用实…...

计网之IP

IP IP基本认识 不使用NAT时&#xff0c;源IP地址和目的IP地址不变&#xff0c;只要源MAC和目的MAC地址在变化 IP地址 D类是组播地址&#xff0c;E类是保留地址 无分类地址CIDR 解决直接分类的B类65536太多&#xff0c;C类256太少a.b.c.d/x的前x位属于网路号&#xff0c;剩…...

mybatis延迟加载

mybatis延迟加载 1、延迟加载概述 应用场景 ​ 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求&#xff0c;当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载的好处 ​ 先从单表查询、需要时再从关联表去关联查…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...