文章目录
- 三引号字符串会原样保留换行和空格
-
- ["""""" 是空字符串](#"""""" 是空字符串)
- 三引号会保留换行。
-
- [如果不想要开头的换行,可以这样写:""" \ 后面的反斜杠可以去掉三引号后的第一个换行.或者紧跟内容](#如果不想要开头的换行,可以这样写:""" \ 后面的反斜杠可以去掉三引号后的第一个换行.或者紧跟内容)
- 如果不像要结尾的换行,可以结尾的三引号紧跟内容
- 结尾有换行是因为,结尾打了回车
- 三引号会保留缩进空格
-
- 想让内容顶格,有三种常见写法
-
- 写法一:内容真的顶格写.但是在函数里面,这样写不太好看
- [写法二:用 textwrap.dedent() 去掉公共缩进](#写法二:用 textwrap.dedent() 去掉公共缩进)
- [写法三:用 .strip() 去掉首尾空行。.strip() 只去掉首尾空白,不会去掉每一行前面的缩进](#写法三:用 .strip() 去掉首尾空行。.strip() 只去掉首尾空白,不会去掉每一行前面的缩进)
- [总结 推荐用textwrap去掉公共缩进,用strip去掉首尾空行、首尾空格](#总结 推荐用textwrap去掉公共缩进,用strip去掉首尾空行、首尾空格)
三引号字符串会原样保留换行和空格
"""""" 是空字符串
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()
