news 2026/4/29 0:52:16

3.1 字符串(String)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3.1 字符串(String)

文章目录

  • 前言
  • 一、字符串创建与基本操作
    • 1. 创建字符串
    • 2. 字符串基本操作
  • 二、字符串索引与切片
    • 1. 索引(Indexing)
    • 2. 切片(Slicing)
  • 三、字符串常用方法
    • 1. 查找与替换方法
    • 2. 大小写转换
    • 3. 分割与连接
    • 4. 去除空白字符
    • 5. 判断方法(返回布尔值)
  • 四、字符串格式化
    • 1. f-string(Python 3.6+,推荐)
    • 2. format()方法

前言

本文介绍了字符串的创建和基本操作、字符串索引与切片、字符串常用方法和字符串的格式化知识要点。


一、字符串创建与基本操作

1. 创建字符串

Python中有多种创建字符串的方式:

python# 1. 单引号s1='Hello World'# 2. 双引号(可以包含单引号)s2="It's a beautiful day"# 3. 三引号(创建多行字符串)s3='''这是第一行 这是第二行 这是第三行'''s4="""多行字符串 也可以这样写"""# 4. 使用str()函数转换num=123s5=str(num)# "123"

2. 字符串基本操作

python# 1. 连接(拼接)s1="Hello"+" "+"World"# "Hello World"# 2. 重复s2="Hi"*3# "HiHiHi"# 3. 获取长度text="Python"length=len(text)# 6# 4. 成员检查print("P"in"Python")# Trueprint("thon"in"Python")# Trueprint("Java"in"Python")# False

二、字符串索引与切片

1. 索引(Indexing)

字符串中的每个字符都有位置索引:

python text="Python"# 正向索引(从左到右)# P y t h o n# 0 1 2 3 4 5# 反向索引(从右到左)# P y t h o n# -6 -5 -4 -3 -2 -1print(text[0])# "P"print(text[2])# "t"print(text[-1])# "n"(最后一个字符)print(text[-3])# "h"

2. 切片(Slicing)

切片用于获取字符串的一部分,语法:[起始:结束:步长]

python text="Python Programming"# 基本切片print(text[0:6])# "Python"(索引0到5,不包括6)print(text[7:18])# "Programming"print(text[:6])# "Python"(省略起始,默认为0)print(text[7:])# "Programming"(省略结束,默认为末尾)print(text[:])# "Python Programming"(复制整个字符串)# 使用步长print(text[::2])# "Pto rgamn"(每隔一个字符)print(text[::-1])# "gnimmargorP nohtyP"(反转字符串)# 负数索引切片print(text[-11:])# "Programming"(从倒数第11个到末尾)print(text[:-12])# "Python"(从开始到倒数第12个)# 常用切片技巧filename="document.pdf"print(filename[-3:])# "pdf"(获取文件扩展名)

三、字符串常用方法

1. 查找与替换方法

python text="Python is powerful. Python is easy."# 查找print(text.find("Python"))# 0(返回首次出现的索引)print(text.rfind("Python"))# 19(从右向左查找)print(text.find("Java"))# -1(未找到)print(text.index("Python"))# 0(类似find,但未找到会报错)print("Python"intext)# True(成员检查)# 计数print(text.count("Python"))# 2(出现次数)print(text.count("is"))# 2# 替换new_text=text.replace("Python","Java")print(new_text)# "Java is powerful. Java is easy."# 只替换指定次数print(text.replace("Python","Java",1))# 只替换第一个

2. 大小写转换

python text="Python Programming"print(text.lower())# "python programming"print(text.upper())# "PYTHON PROGRAMMING"print(text.title())# "Python Programming"(每个单词首字母大写)print(text.capitalize())# "Python programming"(仅首字母大写)print(text.swapcase())# "pYTHON pROGRAMMING"(大小写互换)

3. 分割与连接

python# 分割csv_data="apple,banana,orange,grape"fruits=csv_data.split(",")# ["apple", "banana", "orange", "grape"]print(fruits[0])# "apple"# 按行分割multi_line="第一行\n第二行\n第三行"lines=multi_line.splitlines()# ["第一行", "第二行", "第三行"]# 指定分割次数text="one:two:three:four"print(text.split(":",2))# ["one", "two", "three:four"](只分割前两次)# 连接words=["Hello","World","!"]sentence=" ".join(words)# "Hello World !"path="/".join(["usr","local","bin"])# "usr/local/bin"

4. 去除空白字符

python text=" Python "print(text.strip())# "Python"(去除两侧空白)print(text.lstrip())# "Python "(去除左侧空白)print(text.rstrip())# " Python"(去除右侧空白)# 去除特定字符text2="###Python###"print(text2.strip("#"))# "Python"

5. 判断方法(返回布尔值)

python s1="Python123"s2="12345"s3="PYTHON"s4="python"s5=" "s6="Hello World"print(s1.isalnum())# True(字母或数字)print(s2.isdigit())# True(全是数字)print(s3.isupper())# True(全大写)print(s4.islower())# True(全小写)print(s5.isspace())# True(全是空白字符)print(s6.istitle())# True(每个单词首字母大写)print(s1.startswith("Py"))# Trueprint(s1.endswith("123"))# True

四、字符串格式化

1. f-string(Python 3.6+,推荐)

python name="Alice"age=25score=95.5678# 基本使用print(f"姓名:{name},年龄:{age}")# 表达式计算print(f"{name}明年{age+1}岁")# 格式控制print(f"分数:{score:.2f}")# 保留2位小数:95.57print(f"分数:{score:8.2f}")# 宽度8,右对齐: 95.57print(f"分数:{score:<8.2f}")# 宽度8,左对齐:95.57print(f"分数:{score:^8.2f}")# 宽度8,居中对齐: 95.57# 数字格式number=1234567print(f"{number:,}")# 千位分隔:1,234,567print(f"{number:.2e}")# 科学计数法:1.23e+06# 对齐与填充print(f"{name:>10}")# 右对齐,宽度10:" Alice"print(f"{name:*<10}")# 左对齐,*填充:"Alice*****"print(f"{name:=^10}")# 居中对齐,=填充:"==Alice==="

2. format()方法

python# 位置参数print("{}的年龄是{}岁".format("Bob",30))# "Bob的年龄是30岁"print("{1}的年龄是{0}岁".format(30,"Bob"))# "Bob的年龄是30岁"# 关键字参数print("{name}的成绩是{score}分".format(name="Alice",score=95))# 格式控制(类似f-string)print("分数:{:.2f}".format(95.5678))# "分数:95.57"print("数字:{:,}".format(1234567))# "数字:1,234,567"print("姓名:{:>10}".format("Alice"))# "姓名: Alice"

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 2:02:43

CoreCycler终极指南:轻松搞定CPU稳定性测试的完整教程

CoreCycler终极指南&#xff1a;轻松搞定CPU稳定性测试的完整教程 【免费下载链接】corecycler Stability test script for PBO & Curve Optimizer stability testing on AMD Ryzen processors 项目地址: https://gitcode.com/gh_mirrors/co/corecycler 还在为CPU超…

作者头像 李华
网站建设 2026/4/29 3:54:05

GPT-SoVITS推理速度优化:实时合成可行吗?

GPT-SoVITS推理速度优化&#xff1a;实时合成可行吗&#xff1f; 在虚拟主播直播间里&#xff0c;观众刚打出一句提问&#xff0c;几秒后才听到“数字人”慢半拍地回应——这种延迟虽然不至于中断体验&#xff0c;却足以打破沉浸感。类似场景也出现在智能客服、游戏NPC对话甚至…

作者头像 李华
网站建设 2026/4/23 9:36:51

如何快速掌握NBT编辑器:从入门到精通的完整指南

如何快速掌握NBT编辑器&#xff1a;从入门到精通的完整指南 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer NBT编辑器是一款功能强大的图形化NBT数据编辑工具&…

作者头像 李华
网站建设 2026/4/28 6:08:34

小红书链接解析实战:从失败到成功的完整心路历程

小红书链接解析实战&#xff1a;从失败到成功的完整心路历程 【免费下载链接】XHS-Downloader 免费&#xff1b;轻量&#xff1b;开源&#xff0c;基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader 作为…

作者头像 李华
网站建设 2026/4/28 3:01:10

STM32与无源蜂鸣器驱动电路接口设计核心要点

STM32驱动无源蜂鸣器&#xff1a;从原理到实战的完整设计指南你有没有遇到过这种情况——项目快收尾了&#xff0c;想加个“滴滴”声提示功能&#xff0c;随手把一个无源蜂鸣器接到STM32的GPIO上&#xff0c;结果一通电&#xff0c;声音沙哑不说&#xff0c;系统还时不时复位&a…

作者头像 李华