python 三引号

文章目录

三引号字符串会原样保留换行和空格

"""""" 是空字符串

python 复制代码
s = """"""
print(s)
print(repr(s)) # 输出: ''

三引号会保留换行。

开头3引号不紧跟内容会多一个换行。内容结束回车后在写3引号,也会多一个换行

。

python 复制代码
s = """
hello
world
"""
print(s)
print("***************")
print(repr(s))

如果不想要开头的换行,可以这样写:""" \ 后面的反斜杠可以去掉三引号后的第一个换行.或者紧跟内容

python 复制代码
s = """hello
world
"""
print(repr(s))
# 结果:
"""
hello
world

*******
'hello\nworld\n'
"""

或者这样:

python 复制代码
s = """\
hello
world
"""
print(s)
print("*******")
print(repr(s))
# 结果:
"""
hello
world

*******
'hello\nworld\n'
"""

如果不像要结尾的换行,可以结尾的三引号紧跟内容

python 复制代码
s = """
hello
world"""
print(s)
print("*******")
print(repr(s))
# 结果:
"""

hello
world
*******
'\nhello\nworld'
"""

结尾有换行是因为,结尾打了回车

第一个\n:是jkl这一行结束

第一个\n:是空白行结束

python 复制代码
s = """
abc
def
"""
print(s)
print("****")
print(repr(s))
print("----------------------")
ss = """
ghi
jkl

"""
print(ss)
print("@@@@@@@@@@")
print(repr(ss))

三引号会保留缩进空格

python 复制代码
def demo():
    s = """
    hello
    world
    """
    print(s)
    print("*****")
    print(repr(s))

demo()
# 结果:
"""

    hello
    world
    
*****
'\n    hello\n    world\n    '
"""

想让内容顶格,有三种常见写法

写法一:内容真的顶格写.但是在函数里面,这样写不太好看
python 复制代码
s = """hello
world"""
print(s)
print("********")
print(repr(s))

函数里面这么写不好看

python 复制代码
def demo():
    s = """hello
world"""
    print(s)
    print("*****")
    print(repr(s))
demo()
写法二:用 textwrap.dedent() 去掉公共缩进
python 复制代码
import textwrap

def demo():
    s = textwrap.dedent("""
        hello(缩进8个)
        world(缩进8个)
            ni(缩进12个)
        hao(缩进8个)
                ya(缩进16个)
    """)
    print(s)
    print("******")
    print(repr(s))
demo()
写法三:用 .strip() 去掉首尾空行。.strip() 只去掉首尾空白,不会去掉每一行前面的缩进
python 复制代码
s = """
hello
world
""".strip()
print(s)
print("******")
print(repr(s))

.strip() 只去掉首尾空白,不会去掉每一行前面的缩进

python 复制代码
s = """
    hello
    world
""".strip()
print(s)
print("******")
print(repr(s))


总结 推荐用textwrap去掉公共缩进,用strip去掉首尾空行、首尾空格
python 复制代码
import textwrap
def demo():
    s = textwrap.dedent("""
        hello(缩进8个)
        world(缩进8个)
            ni(缩进12个)
        hao(缩进8个)
                ya(缩进16个)
    """).strip()
    print(s)
    print("******")
    print(repr(s))

demo()
相关推荐
宸津-代码粉碎机2 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
Y3815326622 小时前
SERP API 计费口径:credits_charged、执行失败扣费与退款边界
python·搜索引擎
chenbingjie_c2 小时前
C++ 进阶核心知识点总结:模板、内存分区、new/delete、内存池
开发语言·c++
Escalating_xu4 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言
蒸鱼Yuzheng4 小时前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性
实心儿儿4 小时前
Qt — Qt 事件
开发语言·qt
周杰偷奶茶4 小时前
【Java】数据类型与变量
java·开发语言
code斗4 小时前
Java数据结构:堆详解
java·开发语言·数据结构
重生之小比特4 小时前
【C++进阶】map和set
java·开发语言·c++
圆圆讲门店4 小时前
挑选同城获客服务机构时需要考量的核心因素都有哪些?
大数据·网络·人工智能·python