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

Python3 【字符串】:方法和函数使用示例手册

Python3 【字符串】:方法和函数使用示例手册

Python 提供了丰富的字符串处理方法和函数,以下是一些常用的方法和函数分类整理,并提供详细使用示例,简单易懂,值得收藏。


1. 字符串大小写转换

  • str.upper():将字符串转换为大写。
  • str.lower():将字符串转换为小写。
  • str.title():将每个单词的首字母大写。
  • str.capitalize():将字符串的第一个字符大写。
  • str.swapcase():交换字符串中的大小写。
s = "hello world"
print(s.upper())        # 输出 "HELLO WORLD"
print(s.title())        # 输出 "Hello World"
print(s.capitalize())   # 输出 "Hello world"

2. 字符串查找与替换

  • str.find(sub):返回子字符串 sub 第一次出现的索引,未找到返回 -1
  • str.rfind(sub):从右侧开始查找子字符串。
  • str.index(sub):与 find() 类似,但未找到时会抛出 ValueError
  • str.rindex(sub):从右侧开始查找。
  • str.replace(old, new):将字符串中的 old 替换为 new
  • str.count(sub):返回子字符串 sub 出现的次数。
s = "hello world"
print(s.find("world"))  # 输出 6
print(s.replace("world", "Python"))  # 输出 "hello Python"
print(s.count("l"))     # 输出 3

3. 字符串分割与连接

  • str.split(sep):根据分隔符 sep 将字符串分割为列表。
  • str.rsplit(sep):从右侧开始分割。
  • str.splitlines():按行分割字符串。
  • str.join(iterable):将可迭代对象中的元素用字符串连接。
s = "hello,world,python"
print(s.split(","))     # 输出 ['hello', 'world', 'python']
print("-".join(["a", "b", "c"]))  # 输出 "a-b-c"

4. 字符串去除空白与填充

  • str.strip():去除字符串两端的空白字符。
  • str.lstrip():去除左侧空白字符。
  • str.rstrip():去除右侧空白字符。
  • str.center(width):将字符串居中并用空格填充到指定宽度。
  • str.ljust(width):左对齐并用空格填充。
  • str.rjust(width):右对齐并用空格填充。
  • str.zfill(width):用 0 填充字符串到指定宽度。
s = "  hello  "
print(s.strip())        # 输出 "hello"
print(s.center(10))     # 输出 "  hello   "
print("42".zfill(5))    # 输出 "00042"

5. 字符串检查

  • str.startswith(prefix):检查字符串是否以 prefix 开头。
  • str.endswith(suffix):检查字符串是否以 suffix 结尾。
  • str.isalpha():检查字符串是否只包含字母。
  • str.isdigit():检查字符串是否只包含数字。
  • str.isalnum():检查字符串是否只包含字母和数字。
  • str.isspace():检查字符串是否只包含空白字符。
  • str.islower():检查字符串是否全为小写。
  • str.isupper():检查字符串是否全为大写。
s = "hello123"
print(s.startswith("he"))  # 输出 True
print(s.isalnum())         # 输出 True
print(s.isdigit())         # 输出 False

6. 字符串格式化

  • str.format():格式化字符串。
  • f-string(Python 3.6+):更简洁的格式化方式。
  • str % values:旧式格式化(不推荐)。
name = "Alice"
age = 25
print("Name: {}, Age: {}".format(name, age))  # 输出 "Name: Alice, Age: 25"
print(f"Name: {name}, Age: {age}")            # 输出 "Name: Alice, Age: 25"

7. 字符串编码与解码

  • str.encode(encoding):将字符串编码为字节。
  • bytes.decode(encoding):将字节解码为字符串。
s = "hello"
encoded = s.encode("utf-8")  # 编码为字节
print(encoded)               # 输出 b'hello'
decoded = encoded.decode("utf-8")  # 解码为字符串
print(decoded)               # 输出 "hello"

8. 其他常用方法

  • len(str):返回字符串的长度。
  • str[::-1]:反转字符串。
  • str in str2:检查字符串是否包含子字符串。
  • str * n:重复字符串 n 次。
s = "hello"
print(len(s))        # 输出 5
print(s[::-1])       # 输出 "olleh"
print("he" in s)     # 输出 True
print(s * 3)         # 输出 "hellohellohello"

9. 字符串与列表的转换

  • list(str):将字符串转换为字符列表。
  • "".join(list):将字符列表合并为字符串。
s = "hello"
char_list = list(s)  # 转换为列表 ['h', 'e', 'l', 'l', 'o']
new_s = "".join(char_list)  # 合并为字符串 "hello"

10. 字符串的 Unicode 处理

  • ord(char):返回字符的 Unicode 码点。
  • chr(code):返回 Unicode 码点对应的字符。
print(ord("A"))  # 输出 65
print(chr(65))   # 输出 "A"

11. 字符串的切片操作

字符串切片是 Python 中非常强大且常用的功能,它允许你从字符串中提取子字符串。切片的基本语法是:

string[start:stop:step]
  • start:起始索引(包含)。
  • stop:结束索引(不包含)。
  • step:步长(可选,默认为 1)。

以下是更多关于切片的例子:


(1) 基本切片

s = "Python Programming"# 提取索引 0 到 5 的字符(不包含索引 6)
print(s[0:6])  # 输出 "Python"# 提取索引 7 到 18 的字符
print(s[7:18])  # 输出 "Programming"

(2) 省略起始或结束索引

  • 如果省略 start,默认从字符串开头开始。
  • 如果省略 stop,默认到字符串末尾结束。
s = "Python Programming"# 从开头到索引 5
print(s[:6])  # 输出 "Python"# 从索引 7 到末尾
print(s[7:])  # 输出 "Programming"# 提取整个字符串
print(s[:])  # 输出 "Python Programming"

(3) 使用负索引

负索引表示从字符串末尾开始计数(-1 是最后一个字符)。

s = "Python Programming"# 提取最后 5 个字符
print(s[-5:])  # 输出 "mming"# 提取从索引 -12 到 -1 的字符
print(s[-12:-1])  # 输出 "Programmin"

(4) 使用步长

步长 step 控制切片的间隔。

s = "Python Programming"# 提取所有字符,步长为 2
print(s[::2])  # 输出 "Pto rgamn"# 反转字符串
print(s[::-1])  # 输出 "gnimmargorP nohtyP"# 从索引 0 到 10,步长为 3
print(s[0:10:3])  # 输出 "Phr"

(5) 复杂切片

结合起始、结束和步长,可以实现更复杂的切片。

s = "Python Programming"# 从索引 2 到 12,步长为 2
print(s[2:12:2])  # 输出 "to rg"# 从索引 -10 到 -1,步长为 3
print(s[-10:-1:3])  # 输出 "rgn"

(6) 切片与字符串操作结合

切片可以与其他字符串操作结合使用。

s = "Python Programming"# 提取前 6 个字符并转换为大写
print(s[:6].upper())  # 输出 "PYTHON"# 提取最后 5 个字符并反转
print(s[-5:][::-1])  # 输出 "gnimm"

(7) 切片与条件结合

可以根据条件动态调整切片的范围。

s = "Python Programming"# 提取字符串的前半部分
half_length = len(s) // 2
print(s[:half_length])  # 输出 "Python Pro"# 提取字符串的后半部分
print(s[half_length:])  # 输出 "gramming"

(8) 多层切片

可以对切片结果再次切片。

s = "Python Programming"# 先提取 "Programming",再提取前 5 个字符
print(s[7:][:5])  # 输出 "Progr"

总结

Python 的字符串处理功能非常强大,涵盖了大小写转换、查找替换、分割连接、格式化、编码解码、切片处理等多种操作。掌握这些方法和函数,可以高效地处理各种字符串任务!

相关文章:

Python3 【字符串】:方法和函数使用示例手册

Python3 【字符串】:方法和函数使用示例手册 Python 提供了丰富的字符串处理方法和函数,以下是一些常用的方法和函数分类整理,并提供详细使用示例,简单易懂,值得收藏。 1. 字符串大小写转换 str.upper():…...

数据结构与算法整理复习(一):数据结构概念与线性表

目录 第一章:绪论 1.1 数据结构的基本概念 1.2 算法与算法评价 第二章:线性表 2.1 线性表的定义和基本操作 2.2 线性表的顺序表示(顺序表) 应用题 2.3 线性表的链式表达(链表) 2.3.1 单链表 2.3.2…...

【Block总结】PConv风车卷积,更大的感受野,提高特征提取能力|即插即用

论文信息 论文标题:《Pinwheel-shaped Convolution and Scale-based Dynamic Loss for Infrared Small Target Detection》 论文链接:https://arxiv.org/pdf/2412.16986 GitHub链接:https://github.com/JN-Yang/PConv-SDloss-Data 创新点 …...

Python新春烟花

目录 系列文章 写在前面 技术需求 完整代码 下载代码 代码分析 1. 程序初始化与显示设置 2. 烟花类 (Firework) 3. 粒子类 (Particle) 4. 痕迹类 (Trail) 5. 烟花更新与显示 6. 主函数 (fire) 7. 游戏循环 8. 总结 注意事项 写在后面 系列文章 序号直达链接爱…...

VirtualBox can‘t enable the AMD-V extension

个人博客地址:VirtualBox cant enable the AMD-V extension | 一张假钞的真实世界 最近一次完成Deepin的系统更新后,进入VirtualBox创建的虚拟机(Widows10)时,出现以下错误: 根据网址“https://askubuntu.…...

掘金--创意标题匹配问题

问题描述 在广告平台中,为了给广告主一定的自由性和效率,允许广告主在创造标题的时候以通配符的方式进行创意提交。线上服务的时候,会根据用户的搜索词触发的 bidword 对创意中的通配符(通配符是用成对 {} 括起来的字符串&#x…...

OBU和T-Box

OBU(On-Board Unit,车载单元)和T-Box(Telematics Box,远程信息处理控制单元)都是用于车联网和智能交通系统的车载设备,但它们的功能、应用场景和技术特点存在显著差异。以下是两者的详细对比&am…...

【PVE】Proxmox VE8.0+创建LXC容器安装docker

为了不影响PVE宿主机,通常使用套娃的形式安装Docker容器,再安装相关docker应用。首先在CT模板中创建 Linux 容器,推荐使用Debian。开启ssh登录,修改debian配置,安装docker 一、创建 LXC 容器 1、CT模板下载 点击“模…...

一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk

文章目录 一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk1. 建议按文章顺序从头看,一看到底,豁然开朗2. 啥是chunkIds3.怎么使用chunkIds4. 啥是runtimeChunk5. 怎么使用runtimeChunk 一文大白话讲清楚webpack基本使用——11——chun…...

Java 中的设计模式:经典与现代实践

Java 中的设计模式:经典与现代实践 1. 设计模式简介 设计模式是一种软件开发中的思想,它为我们提供了一些经过验证的、能够应对常见问题的解决方案。学习和掌握设计模式能够让开发者在面对复杂的需求时,能够设计出更加灵活、可维护的代码。…...

DRG_DIP 2.0时代医院程序结构转型与数据结构优化研究

一、引言 1.1 DRG_DIP 2.0 改革背景与意义 医保支付方式改革在医疗保障制度改革中占据着极为关键的地位,是推动医疗领域变革的核心力量。它犹如一把精准的手术刀,对医疗资源的合理分配、医疗服务质量的稳步提升以及医疗费用的有效控制起着决定性作用。…...

一部手机如何配置内网电脑同时访问内外网

做过运维的朋友都知道,最麻烦的是运维电脑不能远程,每次都得现场进行维护,明明客户那边有可以访问内网的电脑,怎么操作能将这台电脑能访问跟到外网呢,这样不就能通过远程软件远程了吗?嘿嘿。按以下步骤试试…...

国产低功耗带LCD驱动和触摸按键功能的MCU

以下是国产低功耗、集成LCD驱动和触摸按键功能的MCU精选型号及其核心特性,结合性能、功耗和适用场景进行综合推荐: 1.灵动微MM32L0130系列 257 核心特性:低功耗:待机模式功耗低至100nA,支持多种低功耗模式。 LCD驱动&a…...

XCP 协议基础

文章目录 一、XCP 简介二、XCP的主要功能三、什么是标定四、什么时候进行标定五、标定的意义六、标定的三层架构XCP协议 和 CCP协议的区别参考 一、XCP 简介 XCP 协议的全称为 eXtended Calibration Protocol,即扩展标定协议。 另有其他定义,XCP 协议全…...

Swift 中 Codable 和 Hashable 的理解

最近初学Swift,碰到下面的代码脑袋里冒出疑问:Codable 和 Hashable是啥?怎么理解? struct Landmark: Hashable, Codable {var id: Intvar name: Stringvar park: Stringvar state: Stringvar description: String }针对上面的疑问…...

基于 WPF 平台实现成语游戏

一、引言 在软件开发领域,利用各种框架开发有趣的应用程序是提升技术能力和增加开发乐趣的有效方式。WPF(Windows Presentation Foundation)作为微软强大的桌面应用开发框架,提供了丰富的图形和交互功能。本文将带领大家基于 WPF…...

2024“博客之星”——我的博客成长与技术洞察

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 一、引言二、个人成长与突破盘点(一)技能提升与知识拓展(二)创作风格与影响力提升&#xf…...

HTTPS协议简述

HTTPS 协议简介 HTTPS 是 HTTP Security 的组合,即在 HTTP 的基础上加入了安全性机制,主要通过加密传输、身份认证和数据完整性保护来确保通信的安全性。 为了实现这一目标,HTTPS 引入了 加密技术,包括对称加密、非对称加密和数…...

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …...

HTML常用属性

HTML标签的常见属性包括许多不同的功能,可以为元素提供附加信息或控制元素的行为。以下是一些常见的属性及其解释: 1. src 描述:src(source)属性指定一个资源的路径,通常用于图像、音频、视频等标签。常见…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...