我写了一个简单的三引号打印语句。见下文。对于 OVER lineart,它被截断为两行不同的行(当您将其复制粘贴到解释器中时。)但是,如果我在每行的末尾插入一个空格或任何空格,那么它可以正常打印。知道为什么在 python 中会出现这种行为。
我倾向于认为这是由于行尾的\和/,但我找不到具体原因。我尝试删除它们并进行了一些观察,但想要一个清晰的推理..
print(
"""
_____ ____ __ __ ______
/ ____| / _ | / | /| | ____|
| | / / | | / /| /| | | |___
| | _ / /__| | / / |_/| | | ___|
| |__| | / / | | / / | | | |____
\_____/ /_/ |_| /_/ |_| |______|
______ _ _ ______ _____
/ __ \ | | / / | ____| | _ \
| | | | | | / / | |___ | |_| |
| | | | | | / / | ___| | _ /
| |__| | | |_/ / | |____ | | \ \
\______/ |____/ |______| |_| \_\
"""
)
最佳答案
您的字符串中有 \
反斜杠转义符,最后两行和第一行各有一个,拼写 over,字母的所有三个部分 < em>R。这些向 Python 发出信号,表明您想忽略紧跟其后的换行符。
要么在行尾的每个 \
反斜杠之后使用一个空格,加倍反斜杠以进行转义,要么使用 raw 字符串,在三重引号前加上 r
:
print(
r"""
_____ ____ __ __ ______
/ ____| / _ | / | /| | ____|
| | / / | | / /| /| | | |___
| | _ / /__| | / / |_/| | | ___|
| |__| | / / | | / / | | | |____
\_____/ /_/ |_| /_/ |_| |______|
______ _ _ ______ _____
/ __ \ | | / / | ____| | _ \
| | | | | | / / | |___ | |_| |
| | | | | | / / | ___| | _ /
| |__| | | |_/ / | |____ | | \ \
\______/ |____/ |______| |_| \_\
"""
)
原始字符串不支持反斜杠转义,转义引号(\"
和 \'
)除外,它们将包含在反斜杠中.
关于python - python 三重引号入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28180511/