python 使用dedent函数删除字符串中的前导空格

python中,可以使用textwrap模块的dedent函数删除字符串中的前导空格,它解决了python代码缩进与书写多行字符串的冲突问题,避免在全局定义多行字符串。

if 3 > 2:
    text = """
        删除前导空格
        果真好用
    """
    print(text)

这段代码里,在if 子句中使用三重引号定义了一个字符串,字符串里有多行,程序执行结果为

        删除前导空格
        果真好用

字符串在定义时,每一行前面都有空格,因此输出时,也会带有空格,那么如何消除每一行前面的空格呢,在定义字符串时,每一行都紧贴着开头书写是不是就可以了呢,试试便知

if 3 > 2:
    text = """
删除前导空格
果真好用
    """
    print(text)

这一次实际的输出结果符合我们的预期,每一行字符串前面都没有了空格,可是这样编写代码使得缩进层级变得混乱,虽然符合语法,却破坏了python的美感。一种可行的解决方案是将这类字符串放在全局作用域里定义,这样就不存在破坏缩进的问题,但这样的字符串定义的多了仍然影响代码的阅读体验,最佳的方法是使用textwrap模块的dedent函数。

from textwrap import dedent

if 3 > 2:
    text = """
        删除前导空格
        果真好用
    """
    print(dedent(text))

输出结果

删除前导空格
果真好用

使用dedent,去掉了每一行字符串的前导空格,保持了python代码的缩进,避免在全局作用域定义太多这类字符串,当真好用

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案