Может ли кто-нибудь дать мне быстрый учебник по 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()
для обеспечения, например, немедленного появления на экране.