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

#python #input #paragraph

#python #ввод #абзац

Вопрос:

У меня есть вопрос о input

 description = input('add description: ')
  

Я добавляю текст, используя Ctrl C и Ctrl V.

Например:

«Рассказ сам по себе является созданной формой. В коротких рассказах используются сюжет, резонанс и другие динамические компоненты, как в романе, но обычно в меньшей степени. Хотя рассказ в значительной степени отличается от романа или новеллы / короткого романа, авторы обычно используют общий набор литературных приемов.

Определение того, что именно отличает короткий рассказ от более длинных вымышленных форматов, проблематично. Классическое определение короткого рассказа заключается в том, что его нужно уметь читать за один присест, что особенно заметно в эссе Эдгара Аллана По «Философия композиции» (1846)»

Результат:

 description = "The short story is a crafted form in its own right. Short stories make use of plot, resonance, and other dynamic components as in a novel, but typically to a lesser degree. While the short story is largely distinct from the novel or novella/short novel, authors generally draw from a common pool of literary techniques."
  

Хотя я хочу, чтобы описание содержало всю текстовую цепочку, которую я скопировал.

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

1. Да; вы пропускаете чтение документации input . По определению, входная строка завершается символом EOL.

Ответ №1:

Обычно input() функция завершается в конце строки или n . Я бы предложил использовать такую настройку:

 line = []
while True:
    line = input()
    if line == "EOF":
        break
    else:
        lines.append(line)
text = ' '.join(lines)
  

Что это делает, так это считывает входные данные и добавляет их в массив, пока вы не введете «EOF» в его собственной строке и не нажмете enter. Это должно решить проблему многострочности.

Ответ №2:

Проблема, с которой вы сталкиваетесь здесь, заключается в том, что ввод завершается, как только нажата клавиша enter или (в данном случае) запускается следующая строка. Единственный способ использовать enter (я просто буду называть это так, надеюсь, вы понимаете, что я имею в виду) — это вместо фактического написания нового абзаца просто написать n , поскольку это представление enter в строке. Однако, если вы хотите обойти эту проблему, я настоятельно рекомендую вам научиться использовать модель TKinter, поскольку, если вы хотите создать какое-либо приложение для интерфейса, это один из лучших модулей. Вот ссылка, с которой вы начнете https://www.tutorialspoint.com/python/python_gui_programming.htm

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

1. Я, вероятно, перейду к графическому интерфейсу, как только узнаю больше о python, я буквально ничего не знаю о atm, мне нужно будет прочитать ВВОД и РАСПЕЧАТАТЬ документацию