开始使用 python 三重引号

Getting started on python triple quotes

我写了一个简单的三引号打印语句。见下文。对于 OVER 线稿,它被截断为两行不同的内容(当您将其复制粘贴到解释器中时。)但是,如果我在每行的末尾插入 space 或任何内容,则它可以正常打印。知道为什么 python.

中的这种行为

我倾向于认为这是由于行尾的\和/造成的,但我找不到具体原因。我尝试删除它们并进行了一些观察,但想要一个明确的推理..

print(
               """
                 _____       ____       __  __   ______
                / ____|     / _  |     / |  /|  |  ____|
               | |         / / | |    / /| /| | | |___
               | |   _    / /__| |   / / |_/| | |  ___|
               | |__| |  / /   | |  / /     | | | |____
                \_____/ /_/    |_| /_/      |_| |______|

                ______   _      _   ______   _____
               /  __  \ | |    / / |  ____| |  _  \
               | |  | | | |   / /  | |___   | |_| |
               | |  | | | |  / /   |  ___|  |  _  /
               | |__| | | |_/ /    | |____  | | \ \
               \______/ |____/     |______| |_|  \_\

                """
               )

您的字符串中有 \ 个反斜杠转义符,最后两行和第一行各一个,拼写 over,所有三个部分字母 R。这些向 Python 发出信号,表示您想 忽略 紧随其后的换行符。

要么在行尾的每个 \ 反斜杠之后使用 space, 反斜杠来转义,或者使用raw 字符串,在三重引号前加上 r:

print(
               r"""
                 _____       ____       __  __   ______
                / ____|     / _  |     / |  /|  |  ____|
               | |         / / | |    / /| /| | | |___
               | |   _    / /__| |   / / |_/| | |  ___|
               | |__| |  / /   | |  / /     | | | |____
                \_____/ /_/    |_| /_/      |_| |______|

                ______   _      _   ______   _____
               /  __  \ | |    / / |  ____| |  _  \
               | |  | | | |   / /  | |___   | |_| |
               | |  | | | |  / /   |  ___|  |  _  /
               | |__| | | |_/ /    | |____  | | \ \
               \______/ |____/     |______| |_|  \_\

                """
               )

原始字符串不支持反斜杠转义,但转义引号(\"\')除外,后者将 包含在反斜杠 中。

问题出在行尾的 \,因此您需要转义它们。为此,我使用了另一个反斜杠。

print(
           """
             _____       ____       __  __   ______
            / ____|     / _  |     / |  /|  |  ____|
           | |         / / | |    / /| /| | | |___
           | |   _    / /__| |   / / |_/| | |  ___|
           | |__| |  / /   | |  / /     | | | |____
            \_____/ /_/    |_| /_/      |_| |______|

            ______   _      _   ______   _____
           /  __  \ | |    / / |  ____| |  _  \
           | |  | | | |   / /  | |___   | |_| |
           | |  | | | |  / /   |  ___|  |  _  /
           | |__| | | |_/ /    | |____  | | \ \
           \______/ |____/     |______| |_|  \_\

            """
           )