Может ли кто-нибудь дать мне быстрый учебник по stdin и stdout в Python 3? [закрытый]

Я знаю, что это звучит как то, что я могу google, но правда в том, что я не нахожу или не понимаю, что объясняет очень мало источников Python 3.

так вот мои вопросы:

  • Is input() на stdin функция в Python 3? Означает ли это, что когда вы открываете filename.py программа,stdin - это то, что пользователь вводит?
  • Is print() на stdout функция в Python 3, или вам нужно написать файл?
  • на сервис Spotify головоломка, is говорит "вход считывается из stdin". Что должно включать в себя мой файл stdin и stdout?

обновление: Значит ли это, что я могу использовать:

import sys
unfmtdDate = str(sys.stdin.read())

...вместо...

unfmtdDate = str(input())

?

5 ответов


stdin и stdout файл-как объекты ОС. В общем случае, когда программа запускается в интерактивном сеансе,stdin ввод с клавиатуры и stdout - это tty пользователя, но оболочка может использоваться для перенаправления их из обычных файлов или вывода и ввода в другие программы.

input() используется для запроса ввода пользователем. В случае чего-то вроде головоломки программирования обычно предполагается, что stdin перенаправлен из файла данных , и когда формат ввода задан, обычно лучше всего использовать sys.stdin.read() вместо запроса ввода с input(). input() предназначено для взаимодействующего входного сигнала потребителя, его может показать подсказку (на sys.stdout)и использовать библиотеку GNU readline (если она есть) для редактирования строк и т. д.

print() - это, действительно, самый простой способ написать stdout. Нет необходимости делать что-то особенное, чтобы указать выходной поток. print() пишет sys.stdout если ему не предоставлен альтернативный файл как


является ли input () функцией stdin в Python 3? Означает ли это, что когда вы открываете filename.py программа, stdin-это то, что пользователь вводит?

input() считывает со стандартного ввода (называется stdin для краткости в некоторых контекстах), да. Ни один язык, о котором я знаю, не имеет функции имени stdin в стандартной библиотеке. Когда вы запускаете программу обычным способом, какие типы пользователей поставляются на стандартный ввод, да. Вот что "стандартный ввод" означает. Существует отдельная программа, которая подает то, что пользователь вводит в стандартный ввод (и делает пару других удобных вещей, таких как интерпретация клавиши backspace). Ваш сценарий не то, что создает окно этот текст вводится.

sys.stdin (т. е. значение stdin определена в sys module) является объект это представляет стандартный ввод. Это предусмотрено, чтобы вы могли использовать его в контексты, в которых вы должны указать "файл", чтобы заставить ввод считываться от пользователя вместо файла.

является ли print () функцией stdout в Python 3, или вам нужно записать в файл?

print() пишет (по умолчанию; вы можете поставить file аргумент ключевого слова, чтобы изменить это) на стандартный вывод (называемый stdout для краткости в некоторых контекстах), да. Все вышеизложенные предостережения применяются:stdout не является функцией на любом языке, который я когда-либо слышал и совершенно отдельная программа фактически вызывает вывод вашего скрипта, который будет отображаться на экране в довольно 80x24 белом тексте на черном фоне (или, как бы вы его ни настроили).

sys.stdout это объект это представляет стандартный выход, используемый аналогично sys.stdin. Вы можете использовать его явно с print функция, но нет смысла: это значение по умолчанию.

для головоломки Spotify, является говорит "ввод на stdin". Что должно включать в себя мой файл stdin и stdout?

спецификация проблемы означает " использовать input() функция для приема ввода".


при запуске программы Python,sys.stdin это файловый объект, подключенный к стандартному входу (STDIN),sys.stdout является объектом file для стандартного вывода (STDOUT) и sys.stderr является объектом file для стандартной ошибки (STDERR).

в любом месте документации вы видите ссылки на стандартный ввод, стандартный вывод или стандартную ошибку, он ссылается на эти дескрипторы файлов. Вы можете получить к ним прямой доступ (sys.stdout.write(...), sys.stdin.read() etc.) или использовать удобные функции, которые используйте эти потоки, например input() и print().

для головоломки Spotify самым простым способом чтения ввода будет что-то вроде этого:

import sys
data = sys.stdin.read()

после этих двух строк вход для вашей программы теперь находится в str data.


С документация Python для print:

на аргумент должен быть объектом с write(string) метод; если его нет или None, sys.stdout будет использоваться. Буферизация вывода определяется . Использовать file.flush() для обеспечения, например, немедленного появления на экране.


Is input() на stdin функция в Python 3?

да.

значит ли это, что когда вы открываете свой