Python入门04字符串
目录
- 1 字符串的定义
- 2 转义字符
- 3 字符串的常见方法
- 4 分割字符串
- 5 字符串反转
- 6 字符串的链式调用
- 7 格式化字符串
- 8 多行字符串
- 总结
1 字符串的定义
在Python中,字符串表示一个字符的序列,比如
str = "hello,world"
这里我们定义了一个字符串,其中每个字符共同构成了字符串,既然是序列,我们可以计算字符串的长度。
先顺序数一下有多少个字符,一共是11个字符
在我们的REPL环境中,我们用len函数来计算字符串的长度
len(str)
在字符串中,每个字符都有一个索引(Index),从0开始。可以使用索引来访问字符串中的特定字符。例如:
str[3]
因为索引是从0开始,如果取索引为3的其实是取的第四个位置的字符,在这里是l,如果我们取索引为4的字符就取出了o
2 转义字符
在Python中,字符串中的转义(Escape)是指使用特殊字符来表示特殊含义的字符。例如,在字符串中使用反斜杠(\)来表示换行符、制表符、双引号等特殊字符。以下是一些常见的字符串转义字符:
- \n 换行符
- \t 制表符
- \ " 双引号
- \ ’ 单引号
- \ \ 反斜杠
下边是一个转义字符的示例
str = "Hello,\nWorld!\tPython is fun!"
print(s)
这里需要注意的是,如果要让转义字符执行,需要用双引号包裹,再一个结果输出需要使用print函数
3 字符串的常见方法
Python提供了字符串的便利API供我们使用,包含如下:
len(str)
:返回字符串的长度。str.upper()
:返回一个新的字符串,其中所有字符都转换为大写。str.lower()
:返回一个新的字符串,其中所有字符都转换为小写。str.capitalize()
:返回一个新的字符串,其中第一个字符转换为大写,其余字符转换为小写。str.title()
:返回一个新的字符串,其中每个单词的第一个字符都转换为大写,其余字符转换为小写。str.strip()
:返回一个新的字符串,其中去除了字符串两端的空格。str.lstrip()
:返回一个新的字符串,其中去除了字符串左侧的空格。str.rstrip()
:返回一个新的字符串,其中去除了字符串右侧的空格。str.split()
:返回一个列表,其中包含字符串按照空格分割的子字符串。str.split(sep)
:返回一个列表,其中包含字符串按照指定分隔符sep
分割的子字符串。str.join(iterable)
:返回一个新的字符串,其中包含iterable
中的所有元素,元素之间用字符串str
连接。str.replace(old, new)
:返回一个新的字符串,其中将字符串中的old
替换为new
。str.find(sub)
:返回字符串中子字符串sub
第一次出现的索引,如果不存在则返回 -1。str.count(sub)
:返回字符串中子字符串sub
出现的次数。str.startswith(prefix)
:检查字符串是否以prefix
开头,返回布尔值。str.endswith(suffix)
:检查字符串是否以suffix
结尾,返回布尔值。
4 分割字符串
可以使用split来分割字符串,默认是使用空格来进行分割字符串
s = "Hello, World!"
substrings = s.split()
print(substrings) # 输出:['Hello,', 'World!']
除了按照空格来分割外,我们还可以指定分割字符,比如使用逗号进行分割
s = "Hello,World!"
substrings = s.split(",")
print(substrings) # 输出:['Hello', 'World!']
除了上述两种分法外,我们还可以有二分法,二分法返回分隔符前边的字符串,分隔符本身,和分隔符右边的字符串
s = "Hello, World!"
first, separator, last = s.partition(',')
print(first) # 输出:Hello
print(separator) # 输出:,
print(last) # 输出:World!
5 字符串反转
在 Python 中,可以通过切片语法来实现字符串的反转。具体地,可以使用负数步长来实现字符串的反转。例如,对于一个字符串 s,可以使用以下代码实现其反转:
s = "Hello, World!"
reversed_s = s[::-1]
print(reversed_s) # 输出:!dlroW ,olleH
6 字符串的链式调用
在 Python 中,字符串是不可变对象,这意味着字符串的方法不会修改原字符串,而是返回一个新的字符串。因此,可以使用链式调用来对字符串进行多次操作,而不需要使用临时变量或者多次赋值。
s="Hello,World!"
s.replace("World!","Python!").upper()
7 格式化字符串
Python 中的 f-string(格式化字符串)是一种非常方便的字符串格式化方法,它允许在字符串中嵌入表达式,并在字符串中直接使用大括号 {} 来指定表达式的值应该如何格式化。
下面是一些常见的 f-string 用法:
- 插入变量值:
name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")
# 输出:My name is Alice and I am 25 years old.
- 插入表达式:
x = 3
y = 4
print(f"The sum of {x} and {y} is {x + y}.")
# 输出:The sum of 3 and 4 is 7.
- 指定格式化字符串:
x = 3.141592653589793
print(f"The value of pi is {x:.2f}.")
# 输出:The value of pi is 3.14.
- 使用条件表达式:
x = 10
y = 20
print(f"{x} is greater than {y}" if x > y else f"{y} is greater than {x}")
# 输出:20 is greater than 10
8 多行字符串
在 Python 中,可以使用三引号(“”" 或 ‘’')来创建多行字符串。多行字符串可以包含换行符、制表符等特殊字符,并且可以在字符串中直接编写多行文本,而不需要使用换行符来表示换行。
下面是一个使用三引号创建多行字符串的例子:
multiline_string = """This is a
multiline string.
It contains multiple lines
of text."""
print(multiline_string)
总结
我们本篇介绍了字符串的定义,常见方法调用,以及格式化字符串和多行字符串的概念。熟练掌握语法,在我们实际的编程中就多添了不少思路,也节省了大量的时间。
相关文章:

Python入门04字符串
目录 1 字符串的定义2 转义字符3 字符串的常见方法4 分割字符串5 字符串反转6 字符串的链式调用7 格式化字符串8 多行字符串总结 1 字符串的定义 在Python中,字符串表示一个字符的序列,比如 str "hello,world"这里我们定义了一个字符串&…...
vue3(四)-基础入门之 fetch 与 axios
一、fetch 1、axios和fetch的区别 Axios 和 Fetch 都是 JavaScript 中用于发送 HTTP 请求的 API,它们的主要区别在以下方面: 1.Axios 支持更广泛的浏览器和 Node.js 版本,而 Fetch 只能在较新的浏览器中使用,或需要使用 polyfi…...

2016年五一杯数学建模C题二孩政策问题解题全过程文档及程序
2016年五一杯数学建模 C题 二孩政策问题 原题再现 多年来实施的严、紧计划生育政策对控制人口增长起到关键作用。在优生优育政策的指引下,我国人口质量显著提高,但也带来了不利影响,生育率偏低、男女比例失衡、人口老龄化情况严重等问题。2…...
学习c#的第二十四天
目录 C# 事件(Event) 事件概述 如何订阅和取消订阅事件 以编程方式订阅事件 使用匿名函数订阅事件 取消订阅 如何发布符合 .NET 准则的事件 发布基于 EventHandler 模式的事件 如何在派生类中引发基类事件 如何实现接口事件 如何实现自定义事…...

ELK企业级日志分析平台——logstash
部署 新建一台虚拟机elk4部署logstash [rootelk4 ~]# yum install -y jdk-11.0.15_linux-x64_bin.rpm[rootelk4 ~]# yum install -y logstash-7.6.1.rpm 命令方式 [rootelk4 bin]# /usr/share/logstash/bin/logstash -e input { stdin { } } output { stdout {} } elasticsearc…...

laravel8中常用路由使用(笔记四)
目录 1、框架路由目录统一放该目录 2、基本路由,路由都调用Route方法 3、控制器使用路由 4、路由参数 5、路由组 6、命名路由 7、命令查看当前路由列表 8、路由缓存 在Laravel 8中,路由定义了应用程序中接受请求的方式。它们定义了URL和相应的控制器方法之间的…...
理解 <script> 标签的 defer 和 async 属性
当我们在编写网页时,经常需要在 HTML 文件中引入 JavaScript 文件。这时候,我们通常会使用 开始 在介绍 defer 和 async 属性之前,我们先来看一下 <script src"path/to/script.js"></script>这段代码会在浏览器解…...

sql中group by和having的使用
group by:按照某个字段或者某些字段进行分组。 having:对分组之后的数据进行再次过滤,having必须和group by一起用,且在group by后面。 比如person表如下(以下查询均基于此表): 1.group by 用法…...
用python自行开发的流星监控系统meteor_monitor(第二篇)
代码: GitHub - xingxinghuo1000/meteor_monitor_scripts 本篇为最新代码的方案介绍和使用介绍。第一篇已经过时了,不建议看 。只看这一篇即可。 背景 著名的流星监控软件ufocapturehd2有几个缺陷,不能忍 1、吃性能,我的工控电脑…...

Slf4j使用Logback时,Logback如何初始化
前言 Slf4j SLF4J,全称 Simple Logging Facade for Java,是一个用于Java编程语言的日志系统抽象层。它为多种现有日志框架(例如Log4j、java.util.logging等)提供了统一的接口, 但自身并不实现日志功能。 SLF4J 允许用户在部署时…...

css之svg 制作圆及旋转
1.代码 <template><div class"loading-box"><div class"circle-container"><svg width"75" height"75" class"move-left-to-right"><circle cx"37.5" cy"37.5" r"26&…...

学习.NET验证模块FluentValidation的基本用法(续1:其它常见用法)
FluentValidation模块支持链式验证方法调用,也就是说,除了 RuleFor(r > r.UserName).NotEmpty()调用方式之外,还可以将对单个属性的多种验证函数以链式调用方式串接起来,比如UserName属性不能为空,长度在5~10之间&a…...

lv11 嵌入式开发 UART实验 11
目录 1 UART帧格式详解 1.1 UART简介 1.2 通信基础 - 并行和串行 1.3 通信基础 - 单工和双工 1.4 通信基础 - 波特率 1.5 UART帧格式 2 Exynos4412下的UART控制器 2.1 引脚功能设置 2.2 阅读芯片手册 3 UART寄存器详解 3.1 引脚寄存器 3.2 串口寄存器概览 3.3 ULC…...
Ubuntu22.04下打包发布Qt5.15应用程序的方法
Qt应用编译时选择release方式编译 目的:debug方式编译依赖的文件会多一些,同时文件大小还会很大。 Notice: 所有操作都是在当前用户下,如果是root账户,需要注意加上sudo,否则会因为权限问题提取依赖文件失败。 准备…...
初级JVM
1、对象在哪块内存分配? 数组和对象在堆内存分配;某些对象没有逃逸出方法,可能被优化为在栈上分配 2、谈谈 JVM 中的常量池 JDK 1.8 开始 字符串常量池:存放在堆中,包括 String 对象执行 intern() 方法后存的地方、…...
MySQL数据库 编程入门
目录 MySQL数据库数据类型 MySQL数据库命令执行 创建用户 创建删除库 创建删除表 MySQL数据库数据类型 MySQL数据库定义了多种数据类型,下面是一些常见的MySQL数据类型及其对应的C/C类型: 整数类型: TINYINT:有符号范围-1…...
6.golang函数
函数是执行特定任务的代码块。函数接受输入,对输入执行一些计算,然后生成输出。 函数声明 在 go 中声明函数的语法是: func name(parameter) (result-list){//body }函数声明以func关键字开头,后跟name(函数名)。在括号中指定参…...
软件可靠性测试常见的方法
“测试”一般是指“为了发现程序中的错误而执行程序的过程”,可靠的测试性是相对重要的,在部分产品开始的测试阶段,需要的就是可靠的测试性,机构,所以存在意义较大。但是在不同的开发阶段、对于不同的人员,…...

C/C++字节对齐
C/C字节对齐 C/C字节对齐1.G_PACKED2.1 pack(push)2.2 pack(1) 全部例子 C/C字节对齐 1.G_PACKED #ifdef __GNUC__#define G_PACKED( __Declaration__ ) __Declaration__ __attribute__((packed)) #else#define G_PACKED( __Declaration__ ) __pragma( pack(push,1)) __Decla…...

【Android知识笔记】性能优化专题(四)
App 线程优化 线程调度原理 任意时刻,只有一个线程占用CPU,处于运行状态多线程并发:轮流获取CPU使用权JVM负责线程调度:按照特定机制分配CPU使用权线程调度模型 分时调度模型:轮流获取、均分CPU时间抢占式调度模型:优先级高的获取,JVM采用Android线程调度 nice值:Proc…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...

负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...

CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...

python可视化:俄乌战争时间线关键节点与深层原因
俄乌战争时间线可视化分析:关键节点与深层原因 俄乌战争是21世纪欧洲最具影响力的地缘政治冲突之一,自2022年2月爆发以来已持续超过3年。 本文将通过Python可视化工具,系统分析这场战争的时间线、关键节点及其背后的深层原因,全面…...