Python字符串基础与高级操作

在Python中,字符串是不可变的数据类型,用于存储一系列的字符。它们可以被创建、访问、操作和格式化,但一旦创建,其内容就不能改变。下面是一篇关于Python字符串技术的详细讲解,包括创建、访问、更新、转义、运算符、格式化、三引号字符串以及内建函数的使用。

创建字符串

字符串可以通过单引号、双引号或三引号创建。单引号和双引号之间没有区别,但三引号允许创建多行字符串。

# 使用单引号
single_quote = 'Hello, World!'# 使用双引号
double_quote = "Hello, World!"# 使用三引号创建多行字符串
multi_line = """Hello,
This is a
multi-line string."""# 打印字符串
print(single_quote)  # Hello, World!
print(double_quote)  # Hello, World!
print(multi_line)  # Hello,\nThis is a\nmulti-line string.
访问字符串中的值

字符串索引从0开始,可以使用方括号来访问单个字符。

# 创建字符串
s = "Python"# 访问第一个字符
print(s[0])  # P# 访问最后一个字符
print(s[-1])  # n# 访问中间的字符
print(s[2])  # t
Python字符串切片详解

字符串切片允许你提取字符串的一部分,语法为 [start:stop:step],其中 start 是切片的起始索引(默认为0),stop 是切片的结束索引(默认为字符串的长度),而 step 是切片的步长(默认为1)。如果省略 startstop,Python会自动使用默认值。

让我们通过一些示例来详细了解切片的工作原理:

# 定义一个字符串
s = "Hello, world!"# 从索引0开始,到索引5结束(不包括第5个位置的字符),默认步长为1
# 输出: 'Hello'
print(s[0:5])  # 'Hello'# 从索引7开始,到字符串的结尾
# 输出: 'world!'
print(s[7:])  # 'world!'# 从字符串的开头,到索引7结束(不包括第7个位置的字符)
# 输出: 'Hello,'
print(s[:7])  # 'Hello,'# 从字符串的倒数第3个字符开始,到字符串的结尾
# 输出: '!d'
print(s[-3:])  # '!d'# 使用步长为2,从索引0开始,到字符串结尾
# 输出: 'Hlo ol!'
print(s[::2])  # 'Hlo ol!'# 从索引5开始,到索引-1结束(不包括最后一个字符),步长为-1(逆序)
# 输出: 'dlrow ,olleH'
print(s[5:0:-1])  # 'dlrow ,olleH'# 完全逆序字符串,从结尾到开头,步长为-1
# 输出: '!dlrow ,olleH'
print(s[::-1])  # '!dlrow ,olleH'
字符串更新

由于字符串是不可变的,不能直接修改。但可以创建新的字符串。

# 创建字符串
s = "Hello"# 更新字符串 - 实际上是创建一个新的字符串
new_s = s + ", World!"# 打印新字符串
print(new_s)  # Hello, World!
转义字符串

转义字符允许在字符串中使用特殊字符。

# 使用转义字符
print("Line1\nLine2")  # Line1\nLine2 -> 分两行显示:Line1 和 Line2
print("Tab\tSpace")  # Tab\tSpace -> 显示:Tab    Space(四个空格)
字符串运算符

字符串支持一些基本的运算符,如连接(+)、重复(*)、索引([])、切片([:])和成员资格检查(innot in)。

# 字符串连接
print("Py" + "thon")  # Python# 字符串重复
print("Py" * 3)  # PyPyPy# 成员资格检查
print("y" in "Python")  # True
print("z" not in "Python")  # True
字符串格式化

可以使用 %format() 方法或 f-string 来格式化字符串。

# 使用 % 符号
print("%s is %d years old." % ("Tom", 20))  # Tom is 20 years old.# 使用 format() 方法
print("{} is {} years old.".format("Tom", 20))  # Tom is 20 years old.# 使用 f-string (Python 3.6+)
name = "Tom"
age = 20
print(f"{name} is {age} years old.")  # Tom is 20 years old.
Python字符串三引号

三引号字符串可以包含换行符,适合创建多行注释或长字符串。

# 使用三引号
long_string = """Hello,
This is a long string."""
print(long_string)  # Hello,\nThis is a long string.
Python 的字符串内建函数

字符串有许多内建函数,如 len(), upper(), lower(), strip(), split(), join() 等。

s = " Python "
# 字符串内建函数示例
print(len(s))  # 8
print(s.strip())  # Python
print(s.upper())  #  PYTHON 
print(s.lower())  # python 
print(s.split())  # [' Python ']
print("-".join(["Hello", "World"]))  # Hello-World

以上就是Python字符串及其操作的全面指南,包括创建、访问、更新、格式化、切片语法和内建函数的使用。掌握这些概念将极大地提高你使用Python处理文本数据的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Phpstudy 2018 之xhcms搭建

1、由于直接访问根目录无法进入网站 2、所以采用搭建网站,第一使用系统服务模式、选择php-5.4.45Apache模式 3、网站域名为本地ip地址或者127.0.0.1、端口8085 4、在navicat创建名字为xjcms的数据库,并导入sql数据库文件 5、浏览器输入127.0.0.1:8085直接…

中风伤寒、感冒、六经辨证笔记

目录 基础传经的原因传经的过程及速度传经的危害感冒时体痛头痛的原因根据头痛的位置辨经 太阳病太阳中风外风内热 表虚感冒颗粒(桂枝葛根汤) 少阳病辨病总结伤寒论原文半表半里太阳为开,阳明为阖,少阳为枢胆的作用帮助肠胃消化、…

deepstream读取mp4文件及不同类型视频输入bug解决

在deepstream中使用mp4文件,与rtsp类似,使用uridecodebin即可,(可见官方test.py文件) def create_source_bin(index, uri):print("Creating source bin")# Create a source GstBin to abstract this bins c…

定投投什么?

定投可以选择的品种有银行理财和基金 银行理财目前有的品种有期限限制,不是那么公开的特点。如果说你想通过定投积累一笔低风险的,用于应急或者短期内要用的钱,可以选择定投现金类银行理财。 基金是最适合定投的产品, 基金分为…

【自然语言处理】面向新冠肺炎的社会计算应用

面向新冠肺炎的社会计算应用 1 任务目标 1.1 案例简介 新冠肺炎疫情牵动着我们每一个人的心,在这个案例中,我们将尝试用社会计算的方法对疫情相关的新闻和谣言进行分析,助力疫情信息研究。本次作业为开放性作业,我们提供了疫情…

C++ STL stable_sort用法

一&#xff1a;功能 对区间内元素进行排序&#xff0c;保证相等元素的顺序&#xff08;稳定排序&#xff09; 二&#xff1a;用法 #include <iostream>struct Record {std::string label;int rank; };int main() {std::vector<Record> data {{"q", 1},…

代码随想录第五十一天 | 300.最长递增子序列 , 674. 最长连续递增序列 , 718. 最长重复子数组

300.最长递增子序列 看完想法&#xff1a;在dp递推公式那里没有太看得懂。首先dp【i】的状态肯定是由前面的dp【0】到dp【i-1】推出的&#xff0c;但是dp【0】到dp【i-1】可以推出dp【i】有个前提就是(nums【i】 > nums【0到i-1任意一个】),例如nums【1】 2, nums【3】 5…

Tomcat下载安装配置教程(零基础超详细)

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 Tomcat 1、下载…

外包干了1个月,技术明显退步。。。

有一种打工人的羡慕&#xff0c;叫做“大厂”。 真是年少不知大厂香&#xff0c;错把青春插稻秧。 但是&#xff0c;在深圳有一群比大厂员工更庞大的群体&#xff0c;他们顶着大厂的“名”&#xff0c;做着大厂的工作&#xff0c;还可以享受大厂的伙食&#xff0c;却没有大厂…

【轻松拿捏 】Java-static关键字(面试)

Java-static关键字 1. 定义和基本概念 回答要点&#xff1a; 示例回答&#xff1a; 2. static 变量 回答要点&#xff1a; 示例回答&#xff1a; 代码示例&#xff1a; 3. static方法 回答要点&#xff1a; 示例回答&#xff1a; 代码示例&#xff1a; 4. static 代…

Modbus协议简介与Python实现

Modbus协议是工业自动化和控制系统中广泛使用的通信协议。自1979年由Modicon(现为施耐德电气的一部分)引入以来,它已经成为一种标准的通信协议,用于连接电子设备和传感器。Modbus协议基于主从架构,支持多种物理层和传输模式,如串行通信(RS-232/RS-485)和以太网。 1. Mo…

10个使用Numba CUDA进行编程的例子

以下是10个使用Numba CUDA进行编程的例子&#xff0c;这些例子涵盖了基本的向量加法、矩阵乘法以及其他一些常见操作&#xff1a; 向量加法 from numba import cuda import numpy as np cuda.jit def vector_add(a, b, c):i cuda.grid(1)if i < len(a):c[i] a[i] b[i] …

STM32智能交通监测系统教程

目录 引言环境准备智能交通监测系统基础代码实现&#xff1a;实现智能交通监测系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;交通监测与管理问题解决方案与优化收尾与总结 1. 引言 智能交通监测系统通…

Linux--线程池(包含日志的解释)

线程系列&#xff1a; Linux–线程的认识(一) Linux–线程的分离、线程库的地址关系的理解、线程的简单封装&#xff08;二&#xff09; 线程的互斥&#xff1a;临界资源只能在同一时间被一个线程使用 生产消费模型 信号量 线程池 线程池&#xff08;Thread Pool&#xff09;是…

Qt 统计图编程

学习目标&#xff1a;Qt 折线图&#xff0c;柱形图和扇形统计图编程 学习基础 Qt QChart 曲线图表操作-CSDN博客 学习内容 Qt中绘制三种常见的图表非常方便, 主要步骤如下: 1. 折线图: - 使用QLineSeries定义折线数据,添加多个坐标点 - 使用QValueAxis创建X轴和Y轴 - 将…

dockerfile配置和yml配置

dockerfile docker build 使用dockerfile自动构建镜像文件 FROM python:3.9WORKDIR /appCOPY requirements.txt. RUN pip install -r requirements.txtCOPY..CMD ["python", "main.py"]docker build dockerifle自动构建拉取python3.9镜像&#xff0c;并执…

拷贝文件的一些操作

利用fputc 、fgetc实现文件的拷贝 int main(int argc, const char *argv[]) {FILE* rfpfopen(argv[1],"r");FILE* wfpfopen(argv[2],"w");if(rfpNULL || wfpNULL){perror("fopen");return 1;}while(1){char resfgetc(rfp);if(feof(rfp)1){break;…

PointCloudLib LocalMaximum_DeleteMaxPoint C++版本

测试效果 简介 在点云库&#xff08;Point Cloud Library&#xff0c;PCL&#xff09;中&#xff0c;处理点云数据时&#xff0c;经常需要去除局部最大点&#xff08;Local Maximum&#xff09;&#xff0c;这通常用于去除噪声、提取特定形状的特征或者简化点云数据。局部最大…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-14 SPI MASET发送程序设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09;1 AC/TAC2 配置Service3 用户权限4 端口开放总结 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文…