#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
| | // | | \
| | // | . | \
'''