如何使用三重报价?

问题描述 投票:0回答:4

出于某种原因,即使使用三引号,文本也会被错误地打印出来这些是我遇到问题的变量...我有其他带三重引号的变量,打印时正确打印!问题只出在这些ASCII码上

其中一个有问题的变量是这个ASCII,其他的只是更少的身体部位;)

    gv_sixTries = '''
___________.._______ 
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  \
| |          ||  `/,|
| |          (\\`_.'
| |         .-`--'.
| |        /Y . . Y\
| |       // |   | \\
| |      //  | . |  \\
| |     ')   |   |   (`
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | \
| |         `-' `-'      
| |                      
| |                      
: :                        
. .                      
'''

这个变量是这样打印的:image

打印代码只是普通打印(gv_NUMBERTries)

操作系统:Windows 10

解释器:Python IDLE 3.7.2

python string variables quote
4个回答
2
投票

在字符串中添加r

gv_sixTries = r'''
    ___________.._______ 
    | .__________))______|
    | | / /      ||
    | |/ /       ||
    | | /        ||.-''.
    | |/         |/  _  \
    | |          ||  `/,|
    | |          (\\`_.'
    | |         .-`--'.
    | |        /Y . . Y\
    | |       // |   | \\
    | |      //  | . |  \\
    | |     ')   |   |   (`
    | |          ||'||
    | |          || ||
    | |          || ||
    | |          || ||
    | |         / | | \
    | |         `-' `-'      
    | |                      
    | |                      
    : :                        
    . .                      
    '''

这告诉python使用字符串作为原始文字,而不是使用反斜杠作为转义字符


0
投票

问题来自于由于某些行末尾的反冲突引起的新行字符的意外转义。

只需通过r为字符串添加前缀来声明原始字符串,它就可以解决问题。

gv_sixTries = r'''
___________.._______ 
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  \
| |          ||  `/,|
| |          (\\`_.'
| |         .-`--'.
| |        /Y . . Y\
| |       // |   | \\
| |      //  | . |  \\
| |     ')   |   |   (`
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | \
| |         `-' `-'      
| |                      
| |                      
: :                        
. .                      
'''

0
投票

该错误是由字符串中的反斜杠字符引起的,该字符用于打印转义序列字符(\ n,\ t,\,等)。使用原始字符串在屏幕上打印反斜杠字符,如:

gv_Tries = r"""
___________.._______
| .__________))______|
| | / /      ||
| |/ /       ||
| | /        ||.-''.
| |/         |/  _  \
| |          ||  `/,|
| |          (\\`_.'
| |         .-`--'.
| |        /Y . . Y\
| |       // |   | \\
| |      //  | . |  \\
| |     ')   |   |   (`
| |          ||'||
| |          || ||
| |          || ||
| |          || ||
| |         / | | \
| |         `-' `-'
| |
| |
: :
. .
"""

0
投票

问题是因为你的一些行以Python转义字符结尾:\

反斜杠(\)字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引号字符。

String and Bytes literals

当一行以反斜杠结尾时,它告诉Python该行在下一行继续。

if some_condition \
    or some_other_condition:

要解决此问题,您要么“加倍”反斜杠以逃避转义字符:

gv_sixTries = '''
| |        /Y . . Y\\
| |       // |   | \\\\
| |      //  | . |  \\\\
'''

或者用r标记你的字符串,将其标记为原始字符串。

字符串和字节文字都可以选择以字母'r''R'为前缀;这样的字符串称为原始字符串,并将反斜杠视为文字字符。

String and Bytes literals

gv_sixTries = r'''
| |        /Y . . Y\
| |       // |   | \\
| |      //  | . |  \\
'''
© www.soinside.com 2019 - 2024. All rights reserved.