Python Glossary English

все 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Сообщить о неточности