Попытка напечатать многострочную строку в одну строку (строка хранится как переменная) - PullRequest
0 голосов
/ 03 июля 2018

Я работаю над введением MIT в курс вычислений и программирования и пытаюсь сохранить многострочную строку в переменной, которую я могу использовать для взаимодействия программы с пользователем.

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

Я сталкиваюсь с тем, что сохраняемая строка выглядит дерьмово в моем коде, и использование тройной кавычки выглядит намного чище, но я все же хочу, чтобы она выводилась в одной строке. Я пытаюсь сохранить его в переменной, например, так:

inputRequest = """
Enter 'h' to indicate the guess is too high.
Enter 'l' to indicate the guess is too low.
Enter 'c' to indicate the guess is correct.
"""

и я попытался вызвать эту переменную в моей консоли следующим образом:

print(inputRequest, end=" ")

но он все еще печатается на трех отдельных строках. Есть ли эффективный способ сделать это, чтобы мой код не выглядел грязно? Хранение строки в переменной кажется хорошим способом сократить мой набор текста, когда мне нужно вызвать конкретный вывод для взаимодействия с пользователем, но я уверен, что есть более эффективные способы сделать это. Спасибо!

Ответы [ 5 ]

0 голосов
/ 04 июля 2018

Вы можете создать строку из нескольких строк в несколько строк:

inputRequest = ("Enter 'h' to indicate the guess is too high. "
                "Enter 'l' to indicate the guess is too low. "
                "Enter 'c' to indicate the guess is correct.")
0 голосов
/ 03 июля 2018

Ответы здесь повсюду. Вот полезный эксперимент для вас. Введите следующую строку в вашей IDE:

text = "This is string1. This is string2. This is string3"

Теперь вручную отформатируйте строку, нажимая клавишу ВВОД после каждой пунктуации, вы получите:

text = "This is string1." \
       "This is string2." \
       "This is string3."

Выше приведена конкатенация строк, которая обеспечит то, что вы ищете, «чистым» способом. Принятый ответ не настолько «чистый», как мог бы быть, но так как был: «спор о семантике» XD

0 голосов
/ 03 июля 2018

Ваша проблема в том, что строка содержит встроенные символы EOL. Оператор print не добавляет новых строк, но они уже встроены в то, что вы говорите для печати. Вам необходимо заменить такие, как:

print(inputRequest.replace("\n", "  ")

Результат:

Enter 'h' to indicate the guess is too high.  Enter 'l' to indicate the guess is too low.  Enter 'c' to indicate the guess is correct.
0 голосов
/ 03 июля 2018

Следующий код поможет вам добиться того, что вы пытаетесь сделать:

print("Enter 'h' to indicate the guess is too high.",
"Enter 'l' to indicate the guess is too low.",
"Enter 'c' to indicate the guess is correct.")

Или же вы можете чередовать кавычки. Первая строка следующего кода иллюстрирует точку:

print('Enter "h" to indicate the guess is too high.',
  "Enter 'l' to indicate the guess is too low.",
  "Enter 'c' to indicate the guess is correct.")

Надеюсь, это то, чего вы пытались достичь, и это помогло;) Ура!

0 голосов
/ 03 июля 2018

Вы можете поместить обратную косую черту в конце каждой строки, чтобы запретить символ новой строки печатать в ваших строках.

inputRequest = """\
    Enter 'h' to indicate the guess is too high. \
    Enter 'l' to indicate the guess is too low. \
    Enter 'c' to indicate the guess is correct. \
    """

print(inputRequest)

Если вы хотите, вы также можете использовать отдельные строки для той же цели.

inputRequest = \
    "Enter 'h' to indicate the guess is too high. " \
    "Enter 'l' to indicate the guess is too low. " \
    "Enter 'c' to indicate the guess is correct. " \

print(inputRequest)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...