pin_drop当前位置:知识文库 ❯ 图文

Python字符串strip()方法

概述

str.strip()系列方法用于去除字符串首尾的指定字符,是文本清理中最常用的方法之一。Python提供了strip()lstrip()rstrip()三个方法,分别用于去除两端、左端和右端的字符。本篇教程将详细介绍这三个方法的语法和用法。


strip/lstrip/rstrip语法

strip

str.strip([chars])去除字符串两端(首尾)的指定字符,默认去除空白字符。

lstrip

str.lstrip([chars])去除字符串左端(开头)的指定字符。

rstrip

str.rstrip([chars])去除字符串右端(末尾)的指定字符。

参数说明

参数 含义 是否必需
chars 要去除的字符集合 否,默认去除空白字符

提示chars参数是一个字符集合,不是字符串。strip("abc")会去除两端的abc中的任意一个,而不是去除"abc"这个子串。


默认用法(去除空白)

代码示例

s = "  Hello, World!  "
print(f"原字符串: '{s}'")
print(f"strip(): '{s.strip()}'")
print(f"lstrip(): '{s.lstrip()}'")
print(f"rstrip(): '{s.rstrip()}'")
方法 结果
strip() 'Hello, World!'
lstrip() 'Hello, World! '
rstrip() ' Hello, World!'

去除各种空白字符

默认去除的空白字符包括:空格、制表符\t、换行符\n、回车符\r等:

代码示例

s = "\t\n  Hello  \n\t"
print(f"原字符串: '{s}'")
print(f"strip(): '{s.strip()}'")

s = "\r\nHello\r\n"
print(f"原字符串: '{s}'")
print(f"strip(): '{s.strip()}'")

指定字符

去除指定字符

代码示例

s = "###Hello###"
print(f"strip('#'): '{s.strip('#')}'")
print(f"lstrip('#'): '{s.lstrip('#')}'")
print(f"rstrip('#'): '{s.rstrip('#')}'")

去除多种字符

代码示例

s = "***Hello World!!!"
print(f"strip('*!'): '{s.strip('*!')}'")

s = "0012345600"
print(f"strip('0'): '{s.strip('0')}'")

s = "xxHelloxxWorldxx"
print(f"strip('x'): '{s.strip('x')}'")

提示chars是字符集合,会从两端持续去除匹配的字符,直到遇到不匹配的字符为止。

去除方向性

代码示例

s = "abchelloabc"

print(f"strip('abc'): '{s.strip('abc')}'")
print(f"lstrip('abc'): '{s.lstrip('abc')}'")
print(f"rstrip('abc'): '{s.rstrip('abc')}'")
方法 结果 说明
strip('abc') 'hello' 两端都去除
lstrip('abc') 'helloabc' 只去除左端
rstrip('abc') 'abchello' 只去除右端

代码示例

综合运用strip方法:

代码示例

user_input = "   张三   "
name = user_input.strip()
print(f"用户名: '{name}'")

csv_line = "  张三, 25, 北京  "
fields = [field.strip() for field in csv_line.split(",")]
print(f"清理后字段: {fields}")

lines = [
    "  第一行  ",
    "\t第二行\t",
    "第三行\n",
    "  第四行\r\n",
]
for line in lines:
    cleaned = line.strip()
    print(f"清理: '{cleaned}'")

s = "0000012345600000"
result = s.strip("0")
print(f"去除首尾0: '{result}'")

s = "[Hello, World!]"
result = s.strip("[]")
print(f"去除方括号: '{result}'")

code = """
def hello():
    print('Hello')
    return True
"""
lines = code.splitlines()
cleaned_lines = [line.rstrip() for line in lines]
cleaned_code = "\n".join(cleaned_lines)
print(f"去除行尾空白:\n{cleaned_code}")

注意事项

1. strip()只去除首尾字符,不影响字符串中间的字符

2. chars参数是字符集合,不是子串,strip("ab")会去除ab,不是去除"ab"

3. strip()会持续去除直到遇到不匹配的字符,不是只去除一次

4. 默认去除所有空白字符(空格、制表符、换行符等),不仅仅是空格

5. 如果字符串两端没有匹配的字符,strip()返回原字符串

6. strip()返回新字符串,不修改原字符串


小结

本篇教程详细介绍了strip()lstrip()rstrip()三个方法的用法。strip()去除两端字符,lstrip()去除左端字符,rstrip()去除右端字符。默认去除空白字符,也可以指定要去除的字符集合。这些方法是文本清理的基础工具,在处理用户输入、读取文件内容等场景中非常常用。


练习题

练习1

给定一个包含用户输入的列表 inputs = [" hello ", "\tworld\n", " python "],请使用strip()方法清理每个元素,并输出清理后的列表。

练习2

编写一个函数,接收一个用特定字符包围的字符串(如"[Hello]""(World)""{Python}"),去除首尾的包围字符,返回内容部分。提示:需要判断首尾字符是否匹配。

常见问题

strip()方法去除的是子串还是字符集合?

strip()方法的chars参数是字符集合,不是子串。例如strip("abc")会去除两端的a、b、c中的任意字符,而不是去除"abc"这个完整子串。

strip()默认去除哪些空白字符?

默认去除所有空白字符,包括空格、制表符(\t)、换行符(\n)、回车符(\r)等。

strip()会修改原字符串吗?

不会。strip()返回一个新字符串,不修改原字符串,因为Python中的字符串是不可变类型。

lstrip()和rstrip()有什么区别?

lstrip()只去除字符串左端(开头)的指定字符,rstrip()只去除右端(末尾)的指定字符,strip()则两端都去除。

如何去除字符串中间的空白字符?

strip()系列方法只去除首尾字符。要去除中间的空白,可以使用replace()方法或正则表达式re.sub()。

标签: Python字符串 strip方法 文本清理 lstrip rstrip 去除空白 Python教程

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python字符串join方法 下一篇: Python字符串大小写转换 - upper/lower/capitalize/title

poll相关推荐

作者头像 智能小晨 python

Python元组命名namedtuple

发布日期 2026-05-31
深入学习Python命名元组namedtuple,掌握字段访问、_make创建、_asdict转字典、_replace替换字段等核心方法。理解命名元组与普通元组的区别,写出更清晰易读的Python代码。
作者头像 智能小晨 python

Python元组解包

发布日期 2026-05-31
全面学习Python元组解包技巧,包括基本解包、星号扩展解包、嵌套解包、交换变量和函数多值返回。掌握优雅的Python赋值语法,让你的代码更简洁高效。
作者头像 智能小晨 python

Python元组index方法

发布日期 2026-05-31
深入学习Python元组index()方法,掌握元素索引查找技巧。了解index()语法、指定范围查找、安全查找方法和实际应用场景,避免ValueError异常,提升Python编程效率。
作者头像 智能小晨 python

Python元组count方法

发布日期 2026-05-31
深入学习Python元组count()方法,掌握元素出现次数统计技巧。了解count()语法、性能优化建议、嵌套元组统计和实际应用场景,配合练习题巩固所学知识。