我写了一个简单的三重引用打印声明。见下文。对于OVER艺术线条,它被截断为两个不同的行(当你将它粘贴到解释器中时。)但是,如果我在每行的末尾插入一个空格或任何行,那么它打印正常。知道为什么在python中会出现这种行为。
我倾向于认为这是由于\和/在行尾,但我找不到具体的理由。我尝试删除它们并且有一些观察但是想要一个明确的推理......
print(
"""
_____ ____ __ __ ______
/ ____| / _ | / | /| | ____|
| | / / | | / /| /| | | |___
| | _ / /__| | / / |_/| | | ___|
| |__| | / / | | / / | | | |____
\_____/ /_/ |_| /_/ |_| |______|
______ _ _ ______ _____
/ __ \ | | / / | ____| | _ \
| | | | | | / / | |___ | |_| |
| | | | | | / / | ___| | _ /
| |__| | | |_/ / | |____ | | \ \
\______/ |____/ |______| |_| \_\
"""
)
答案 0 :(得分:7)
你的字符串中有\
反斜杠转义符,最后两行各一行以及第一行拼写 over ,字母 R的所有三部分。这些信号告诉Python你想要忽略后面的换行符。
在一行的每个\
反斜杠之后立即使用空格, double 反斜杠以逃避转义,或者使用 raw 字符串在三重引号前加上r
:
print(
r"""
_____ ____ __ __ ______
/ ____| / _ | / | /| | ____|
| | / / | | / /| /| | | |___
| | _ / /__| | / / |_/| | | ___|
| |__| | / / | | / / | | | |____
\_____/ /_/ |_| /_/ |_| |______|
______ _ _ ______ _____
/ __ \ | | / / | ____| | _ \
| | | | | | / / | |___ | |_| |
| | | | | | / / | ___| | _ /
| |__| | | |_/ / | |____ | | \ \
\______/ |____/ |______| |_| \_\
"""
)
原始字符串不支持反斜杠转义,但转义引号(\"
和\'
)除外,它将包含反斜杠。
答案 1 :(得分:0)
问题在于行末\
,因此您需要转义它们。为此,我使用另一个反斜杠。
print(
"""
_____ ____ __ __ ______
/ ____| / _ | / | /| | ____|
| | / / | | / /| /| | | |___
| | _ / /__| | / / |_/| | | ___|
| |__| | / / | | / / | | | |____
\_____/ /_/ |_| /_/ |_| |______|
______ _ _ ______ _____
/ __ \ | | / / | ____| | _ \\
| | | | | | / / | |___ | |_| |
| | | | | | / / | ___| | _ /
| |__| | | |_/ / | |____ | | \ \\
\______/ |____/ |______| |_| \_\\
"""
)