跳到主要内容Python 字符串操作:基础方法与格式化技巧 | 极客日志Python算法
Python 字符串操作:基础方法与格式化技巧
Python 字符串操作的基础知识与实战技巧。内容包括字符串的基本操作(索引、切片)、常用方法(大小写转换、查找替换、分割连接)、三种格式化方式(%、format、f-string)的对比、编码与解码处理、类型转换以及高级操作(对齐、填充)。文章提供了完整的代码示例,帮助读者理解字符串在文本处理、数据清洗中的实际应用,并总结了学习要点与实践建议。
接口猎人7 浏览 Python 字符串操作
概述
字符串是编程中最常用的数据类型之一,特别是在文本处理、数据清洗和自然语言处理等领域。掌握字符串操作是 Python 编程的基础技能。
字符串操作分类
- 基本操作:索引、切片、长度
- 常用方法:大小写转换、查找替换、分割连接、判断方法
- 格式化:百分号格式化、format 方法、f-string
- 编码处理:编码、解码
- 类型转换:数字转字符串、字符串转数字
- 高级操作:对齐填充、迭代遍历
代码示例
print("=== Python 字符串操作详解 ===\n")
print("1. 字符串基本操作:")
text = "Hello, Python World!"
print(f"原始字符串:'{text}'")
print(f"第一个字符:'{text[0]}'")
print(f"最后一个字符:'{text[-1]}'")
print(f"前 5 个字符:'{text[:5]}'")
print(f"从第 7 个字符到最后:'{text[6:]}'")
print(f"第 7 到第 12 个字符:'{text[6:12]}'")
print(f"每隔一个字符:'{text[::2]}'")
print(f"反转字符串:'{text[::-1]}'")
print(f"字符串长度:{len(text)}")
print()
print("2. 字符串常用方法:")
sample_text = " Hello, Python! Welcome to the World of Python Programming. "
print(f"示例字符串:'{sample_text}'")
stripped = sample_text.strip()
()
()
()
()
()
()
()
()
replaced = stripped.replace(, )
()
words = stripped.split()
()
sentence =
split_by_comma = sentence.split()
()
joined = .join(words[:])
()
()
()
()
()
()
()
()
name =
age =
city =
old_style = % (name, age, city)
()
format_method = .(name, age, city)
()
f_string =
()
pi =
()
()
number =
()
()
()
chinese_text =
()
encoded = chinese_text.encode()
()
decoded = encoded.decode()
()
()
()
escape_example =
()
(escape_example)
raw_string =
()
multi_line =
()
(multi_line)
()
()
num =
num_str = (num)
()
str_int =
str_float =
converted_int = (str_int)
converted_float = (str_float)
()
()
my_list = [, , ]
list_str = .join(my_list)
()
str_to_list = list_str.split()
()
()
()
text =
()
()
()
()
number =
()
email =
()
word =
()
i, char (word):
()
()
字符串处理流程
字符串处理通常包含以下逻辑分支:首先判断是否需要清洗(如去除空白),然后决定是直接处理还是进一步格式化。若需要分割,则执行 split 操作并处理结果,否则进行其他操作,最终得到处理结果。
字符串格式化对比
| 格式化方法 | 语法示例 | 优点 | 缺点 |
|---|
| % 格式化 | "Hello %s" % name | 兼容性好,适用于旧版本 Python | 不直观,容易出错 |
| format 方法 | "Hello {}".format(name) | 功能强大,支持位置和命名参数 | 语法稍复杂 |
| f-string | f"Hello {name}" | 直观易读,性能好 | 需要 Python 3.6+ 版本 |
学习要点
- 掌握基本操作:索引、切片、长度计算
- 熟练使用常用方法:大小写转换、查找替换、分割连接等
- 理解格式化方法:特别是推荐使用的 f-string
- 处理编码问题:正确处理中文等非 ASCII 字符
- 掌握类型转换:字符串与其他数据类型的相互转换
实践建议
- 运行示例代码,观察各种字符串操作的输出结果
- 尝试修改字符串内容,观察结果变化
- 练习复杂的字符串处理场景
- 在实际项目中应用学到的字符串操作技巧
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
print
f"去除首尾空白:'{stripped}'"
print
f"全部大写:'{stripped.upper()}'"
print
f"全部小写:'{stripped.lower()}'"
print
f"首字母大写:'{stripped.capitalize()}'"
print
f"每个单词首字母大写:'{stripped.title()}'"
print
f"查找'Python'的位置:{stripped.find('Python')}"
print
f"查找最后一个'Python'的位置:{stripped.rfind('Python')}"
print
f"'Python'出现的次数:{stripped.count('Python')}"
'Python'
'Java'
print
f"将'Python'替换为'Java': '{replaced}'"
print
f"按空格分割:{words}"
"Python,is,awesome"
','
print
f"按逗号分割:{split_by_comma}"
'-'
4
print
f"用'-'连接前 4 个单词:'{joined}'"
print
f"是否以'Hello'开头:{stripped.startswith('Hello')}"
print
f"是否以'Programming.'结尾:{stripped.endswith('Programming.')}"
print
f"是否全为字母:{'Hello'.isalpha()}"
print
f"是否全为数字:{'123'.isdigit()}"
print
f"是否全为字母或数字:{'Hello123'.isalnum()}"
print
print
"3. 字符串格式化:"
"张三"
25
"北京"
"姓名:%s, 年龄:%d, 城市:%s"
print
f"百分号格式化:{old_style}"
"姓名:{}, 年龄:{}, 城市:{}"
format
print
f"format 方法:{format_method}"
f"姓名:{name}, 年龄:{age}, 城市:{city}"
print
f"f-string: {f_string}"
3.141592653589793
print
f"π的值(保留 2 位小数): {pi:.2f}"
print
f"π的值(科学计数法): {pi:.2e}"
42
print
f"数字补零(5 位): {number:05d}"
print
print
"4. 字符串编码和解码:"
"你好,世界!"
print
f"中文字符串:{chinese_text}"
'utf-8'
print
f"UTF-8 编码:{encoded}"
'utf-8'
print
f"UTF-8 解码:{decoded}"
print
print
"5. 多行字符串和转义字符:"
"第一行\n第二行\t制表符\\反斜杠"
print
"转义字符示例:"
print
r"C:\Users\张三\Documents"
print
f"原始字符串:{raw_string}"
"""
这是多行字符串的第一行
这是第二行
这是第三行
"""
print
"多行字符串:"
print
print
print
"6. 字符串与其他数据类型的转换:"
123.456
str
print
f"数字 {num} 转字符串:'{num_str}'"
"123"
"45.67"
int
float
print
f"字符串 '{str_int}' 转整数:{converted_int}"
print
f"字符串 '{str_float}' 转浮点数:{converted_float}"
'apple'
'banana'
'orange'
','
print
f"列表 {my_list} 转字符串:'{list_str}'"
','
print
f"字符串 '{list_str}' 转列表:{str_to_list}"
print
print
"7. 字符串的高级操作:"
"Python"
print
f"居中对齐 (20 字符): '{text.center(20)}'"
print
f"左对齐 (20 字符): '{text.ljust(20)}'"
print
f"右对齐 (20 字符): '{text.rjust(20)}'"
print
f"用*填充:'{text.center(20,'*')}'"
"42"
print
f"左侧补零 (5 位): '{number.zfill(5)}'"
print
f"邮箱格式检查 '{email}': {'@' in email and '.' in email}"
"Python"
print
f"遍历字符串 '{word}':"
for
in
enumerate
print
f" 索引 {i}: '{char}'"
print
"\n=== 字符串操作详解结束 ==="