Что (если есть) - различия между следующими двумя методами чтения строки со стандартного ввода: raw_input()
и sys.stdin.readline()
? И в каких случаях один из этих методов предпочтительнее другого?
Чтение строки со стандартного ввода в Python
Ответ 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/