【问题标题】:How to use triple quotes?如何使用三引号?
【发布时间】:2019-03-06 10:51:00
【问题描述】:

某些变量打印错误。

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

变量是这样打印的: image 操作系统:Windows 10

解释器:Python IDLE 3.7.2

【问题讨论】:

  • 看起来你在那些扭曲的行上缺少换行符

标签: python string variables quote


【解决方案1】:

为您的字符串添加 r 前缀

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

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

【讨论】:

    【解决方案2】:

    问题来自于由于某些行末尾的反斜杠而不必要地转义了换行符。

    只需在字符串前面加上 r 前缀来声明一个原始字符串,它就会解决问题。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        问题是因为您的某些行以 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\
        | |       // |   | \\
        | |      //  | . |  \\
        '''
        

        【讨论】:

          猜你喜欢
          • 2011-12-08
          • 2016-04-25
          • 1970-01-01
          • 1970-01-01
          • 2019-05-29
          • 2013-07-12
          • 2018-04-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多