все Python 3sysпонятие
sys.stdin
потоки
Стандартный поток ввода — текстовый файловый объект. Из него читают input() и цикл for line in sys.stdin.
Синтаксис
import sys
for line in sys.stdin:
...
Строки приходят вместе с '\n' на конце, поэтому почти всегда нужен .strip() — иначе сравнение с ожидаемым ответом развалится на невидимом символе. Цикл for line in sys.stdin заканчивается только на конце ввода (Ctrl+D в терминале, Ctrl+Z и Enter на Windows), поэтому задачи с неизвестным числом строк читают именно так. sys.stdin.read() забирает весь ввод одной строкой.
Примеры
import io, sys
sys.stdin = io.StringIO('3 4\n5 6\n') # так ввод подставят тесты: python main.py < input.txt
for line in sys.stdin:
a, b = map(int, line.split())
print(a + b) # → 7 / 11
import io, sys
sys.stdin = io.StringIO('hello\n')
line = sys.stdin.readline()
print(repr(line), repr(line.strip())) # → 'hello\n' 'hello'
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности