Подтвердить что ты не робот

Чтение строки со стандартного ввода в Python

Что (если есть) - различия между следующими двумя методами чтения строки со стандартного ввода: raw_input() и sys.stdin.readline()? И в каких случаях один из этих методов предпочтительнее другого?

4b9b3361

Ответ 1

raw_input() принимает необязательный аргумент prompt. Он также удаляет конечный символ новой строки из возвращаемой строки и поддерживает функции истории, если загружен модуль readline.

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

Поскольку они не делают то же самое, они не являются взаимозаменяемыми. Я лично предпочитаю использовать raw_input() для ввода пользовательского ввода и readline() для чтения строк из файла.

Ответ 2

"Однако, с точки зрения многих начинающих и преподавателей Python, использование sys.stdin.readline() представляет следующие проблемы:

  • По сравнению с именем "raw_input" имя "sys.stdin.readline()" неудобно и неэлегантно.

  • Имена "sys" и "stdin" не имеют значения для большинства новичков, которые в основном заинтересованы в том, что делает функция, а не в структуре пакета. Отсутствие смысла также затрудняет запоминание: "sys.stdin.readline()" или "stdin.sys.readline()"? Для новичков программирования нет никакой очевидной причины предпочитать одну над другой. Напротив, функции простых и прямых имен, таких как print, input и raw_input и open, легче запомнить ". Здесь: http://www.python.org/dev/peps/pep-3111/