【python】字符串(String)应用案例精选

news/2025/4/2 4:57:40/文章来源:https://www.cnblogs.com/szmtjs10/p/18801630

Python “字符串” 经典范例 :20 个使用方法与技巧

以下是 Python 中字符串的 20 个经典使用实例,涵盖了常见的字符串操作和应用场景:


1. 字符串反转

将字符串反转是经典的面试题之一,可以使用切片轻松实现。

s = "hello"
reversed_s = s[::-1]
print(reversed_s)  # 输出 "olleh"

2. 检查回文字符串

回文字符串是指正读和反读都相同的字符串(如 “madam”)。

解释
 
 
def is_palindrome(s):return s == s[::-1]print(is_palindrome("madam"))  # 输出 True
print(is_palindrome("hello"))  # 输出 False

3. 统计字符出现次数

统计字符串中某个字符或子字符串的出现次数。

s = "hello world"
count = s.count("l")
print(count)  # 输出 3

4. 字符串分割与连接

将字符串按特定分隔符分割,或将列表中的字符串连接成一个字符串。

# 分割
s = "apple,banana,orange"
fruits = s.split(",")
print(fruits)  # 输出 ['apple', 'banana', 'orange']# 连接
new_s = "-".join(fruits)
print(new_s)  # 输出 "apple-banana-orange"

5. 字符串格式化

使用 f-string 或 format() 方法动态生成字符串。

name = "Alice"
age = 25
# 使用 f-string
print(f"My name is {name} and I am {age} years old.")
# 使用 format()
print("My name is {} and I am {} years old.".format(name, age))

6. 去除字符串空白

去除字符串开头和结尾的空白字符(如空格、换行符等)。

s = "  hello world  "
trimmed_s = s.strip()
print(trimmed_s)  # 输出 "hello world"

7. 查找子字符串

查找子字符串在字符串中的位置。

s = "hello world"
index = s.find("world")
print(index)  # 输出 6

8. 替换字符串中的内容

将字符串中的某个子字符串替换为另一个字符串。

s = "hello world"
new_s = s.replace("world", "Python")
print(new_s)  # 输出 "hello Python"

9. 检查字符串的开头或结尾

检查字符串是否以某个前缀开头或以某个后缀结尾。

s = "hello world"
print(s.startswith("hello"))  # 输出 True
print(s.endswith("world"))    # 输出 True

10. 字符串加密与解密

实现简单的字符串加密(如 Caesar Cipher,凯撒密码)。

def caesar_cipher(text, shift):result = ""for char in text:if char.isalpha():shift_amount = shift % 26if char.islower():result += chr(((ord(char) - ord('a') + shift_amount) % 26) + ord('a'))else:result += chr(((ord(char) - ord('A') + shift_amount) % 26) + ord('A'))else:result += charreturn result# 加密
encrypted = caesar_cipher("hello", 3)
print(encrypted)  # 输出 "khoor"# 解密
decrypted = caesar_cipher(encrypted, -3)
print(decrypted)  # 输出 "hello"

11. 字符串对齐处理

使用 ljust()、rjust() 和 center() 方法对字符串进行对齐。


s = "hello"
print(s.ljust(10, "-"))  # 输出 "hello-----"
print(s.rjust(10, "-"))  # 输出 "-----hello"
print(s.center(10, "-")) # 输出 "--hello---"

12. 检查字符串是否包含特定字符

使用 in 关键字检查字符串是否包含某个字符或子字符串。


s = "hello world"
print("world" in s)  # 输出 True
print("python" in s) # 输出 False

13. 字符串的逐字符操作

遍历字符串中的每个字符并进行操作。

s = "hello"
for char in s:print(char.upper(), end=" ")  # 输出 "H E L L O "

14. 字符串的重复

使用 * 运算符重复字符串。

s = "hello"
repeated_s = s * 3
print(repeated_s)  # 输出 "hellohellohello"

15. 字符串的切片与步长

使用切片和步长提取字符串中的特定部分。

s = "hello world"
# 提取偶数索引的字符
print(s[::2])  # 输出 "hlowrd"# 反转字符串
print(s[::-1])  # 输出 "dlrow olleh"

16. 切片与字符串操作结合

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


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

17. 字符串多层切片操作

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


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

18. 字符串与列表的转换

list(str):将字符串转换为字符列表。

“”.join(list):将字符列表合并为字符串。


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

19. 字符串查找与替换

s = "hello world"
print(s.find("world"))  # 输出 6
print(s.replace("world", "Python"))  # 输出 "hello Python"
print(s.count("l"))     # 输出 3
  • 1
  • 2
  • 3
  • 4

20. 字符串编码与解码


s = "hello"
encoded = s.encode("utf-8")  # 编码为字节
print(encoded)               # 输出 b'hello'
decoded = encoded.decode("utf-8")  # 解码为字符串
print(decoded)               # 输出 "hello"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

总结

这些实例涵盖了字符串的常见操作,包括反转、查找、替换、格式化、加密等。掌握这些经典用法,可以解决大多数字符串处理问题!

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

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

相关文章

vscode同时编辑多行添加自定义递增数字

vscode有时会遇到需要添加大量递增的数字的工作,这样的劳动相对重复又机械,使用以下办法来解决这样重复机械的劳动 如果对于批量操作需要高度自定义话,可直接看最后一种方法 1.多行光标,批量操作 MAC:option+shift+鼠标点击进行选择可以实现多行批量操作,批量删除 2.可自…

从菜鸟到高手:Linux C/C++程序性能分析实战指南!

"你这程序怎么这么卡啊?能不能优化一下?" —— 你的leader,大概率大家好,我是小康。 你有没有这样的经历:辛辛苦苦写完的 C++ 程序,功能测试一切正常,但一到生产环境就被吐槽"太慢了"?作为开发者,我们经常被要求解决性能问题,但如何找出程序的性…

US104N-ASEMI家用电器专用US104N

US104N-ASEMI家用电器专用US104N编辑:LL US104N-ASEMI家用电器专用US104N 型号:US104N 品牌:ASEMI 封装:TO-220F 栅极触发电压(Vgt):1.3V。 栅极触发电流(Igt):0.2mA。 保持电流最大值(Ih):30mA。 正向重复电压(Vdrm):800V。 通态电流最大值(It(RMS)):4A。 …

【Nmap】扫描结果美化后的服务器端口安全管理

所有的服务器使用Nmap扫描一下服务器列表的txt就可以,Nmap扫描结果通常是个XML文件,不方便浏览,推荐几个脚本,做一个扫描结果优化 https://github.com/ssjt21/parser_nmap_xml_2_Excel https://github.com/sp4rkw/NmapToExcel https://github.com/chuanwei/nmaptocsvNMAP扫…

plink软件中计算距离矩阵

001、--distance选项,计算具有不同位点的数目plink --file test --distance --out result ## 结果文件为每一个个体具有不同的SNP的数目,下三角矩阵形式展示,省略了第一行和最后一列 。002、

STM32 + keil5 HelloWrold

硬件清单 1. STM32F407VET6 2. STLINK V2下载器(带线)环境配置 1. 安装ST-LINK2. 安装并配置 keil5 https://blog.csdn.net/qq_36535414/article/details/108947292 https://blog.csdn.net/weixin_43732386/article/details/1173752663. 接线并下载烧入完成后拔插ST-LINK V2,就…

MySQL 锁机制:数据库的交通管制系统

MySQL 锁机制:数据库的"交通管制系统" 🚦 在数据的高速公路上,没有红绿灯会怎样?一片混乱!MySQL 的锁机制就是数据库世界的交通规则... 什么是锁机制?🤔 锁机制是数据库用来控制并发访问的一种方式,确保在多人同时操作数据库时不会出现数据不一致或损坏。简…

揭秘AI自动化框架Browser-use(四):Browser-use记忆模块技术解析

在 AI 自动化任务中,记忆模块是实现复杂任务处理的关键组件。Browser-use 项目通过引入记忆模块,解决了 LLM 在连续性任务中的无状态性问题,使代理能够维持上下文连贯性,执行复杂多步骤任务,并从错误中学习和恢复。一、从一次失败的景点采集说起 在 AI 自动化任务中,记忆…

微软Dynamics 365Power Platform技术找工作|宝藏岗位+金饭碗+高薪潜力

【简单介绍】‌ (长沙爱码士IT培训是一家专门培训微软Dynamics 365 CRM和Power Platform技术的一家公司www.aimashi365.com)本人是长沙爱码士IT的金牌讲师,已经帮助上百位学员找到IT工作,对训微软Dynamics 365 CRM和Power Platform技术有兴趣的朋友,我们可以随时沟通交流。…

差分约束学习笔记

一.差分约束系统 如果一个系统有 \(n\) 个变量 \(x_1,x_2,,x_n\) 和 \(m\) 个约束条件(也是不等式)和\(m\) 个常量 \(w_1,w_2,,w_m\)。每一个不等式形如以下格式 \(x_i - x_j \le w_k\)(\(1 \le i,j \le n\),\(1 \le k \le m\))。则称之为差分约束系统。 这个名字的由来是…

9.6K+ Star!一个基于 SpringBoot + Vue3 的工作流引擎快速开发平台!

mldong —— 一个基于 SpringBoot + Vue3 实现的工作流引擎快速开发平台,采用前后端分离的模式,内置完整的权限架构。大家好,我是 Java陈序员。 今天,给大家介绍一个基于 SpringBoot + Vue3 的工作流引擎快速开发平台!关注微信公众号:【Java陈序员】,获取开源项目分享、…

搭建开源笔记平台:outline

折腾的意义 为什么要自己搭建一个笔记平台?没理由,就是突然想试试。有时候突然有个想法,搜了一下正好有合适的方案,就顺手试一下。其实已经有很多成熟的笔记软件,例如Notion/OneNote,但谁不想要一个数据完全在自己服务器的笔记呢。 开始搭建 这个搭建是真的麻烦,需要一堆…