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…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
