Как использовать тройные кавычки?

#python #string #variables #quote

#python #строка #переменные #Цитата

Вопрос:

некоторые переменные печатаются неправильно.

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

переменная печатается следующим образом:
изображение
ОС: Windows 10

интерпретатор: Python IDLE 3.7.2

Комментарии:

1. Похоже, вам не хватает символов новой строки в этих искаженных строках

Ответ №1:

Добавляйте префикс r к вашей строке

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

Это указывает python использовать строку как необработанный литерал, не используя обратную косую черту в качестве escape-символов

Ответ №2:

Проблема возникает из-за нежелательного экранирования символов новой строки из-за антислешей в конце некоторых строк.

Просто объявите необработанную строку, добавив к вашей строке префикс r , и это решит проблему.

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

Ответ №3:

Ошибка возникает из-за символа обратной косой черты в строке, которая используется для печати символов escape-последовательности (n, t, и т.д.). Используйте необработанную строку для печати символа обратной косой черты на экране, что-то вроде:

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

Ответ №4:

Проблема в том, что некоторые из ваших строк заканчиваются escape-символом Python: .

Символ обратной косой черты () используется для экранирования символов, которые в противном случае имеют особое значение, таких как перевод строки, сама обратная косая черта или символ кавычки.

Строковые и байтовые литералы

Когда строка заканчивается обратной косой чертой, это сообщает Python, что строка продолжается на следующей строке.

 if some_condition 
    or some_other_condition:
  

Чтобы противостоять этому, вы либо хотите «удвоить» свои обратные косые черты, чтобы избежать экранирующих символов:

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

Или пометьте вашу строку r , чтобы пометить ее как необработанную строку.

Литералы string и bytes необязательно могут иметь префикс с буквой 'r' или 'R' ; такие строки называются необработанными строками и обрабатывают обратную косую черту как литеральные символы.

Строковые и байтовые литералы

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