Ввод-вывод
Ввод данных
Наиболее простой способ считать данные от пользователя —
воспользоваться побочным эффектом вычисления формулы input()
.
Функция input
неким (ОС-специфичным) способом запрашивает у пользователя
строчку текста и выдаёт её в качестве своего результата. Тип данных
результата — текст. Если его нужно интерпретировать как число,
нужно к нему применить функцию int
.
Очень часто требуется разбить строчку на отдельные слова. В этом помогает
метод текстовых данных .split()
и множественное присваивание. Например,
чтобы считать из строчки два числа, можно воспользоваться конструкцией
a, b = input().split()
a, b = int(a), int(b)
Ровно так же можно считать и три (и любое другое количество) числа:
a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
К сожалению, так нельзя считать одно число. Если хочется совсем универсального шаблона, можно воспользоваться следующим:
a, b, *_ = input().split()
## все остальные слова текста, кроме первых двух, оказываются в переменной _
a, b = int(a), int(b)
Ровно эта же конструкция отлично работает и для одного числа:
a, *_ = input().split()
a = int(a)
Напоследок скажем о том, что если нужно считать весь поданный на вход
программе текст, можно воспользоваться формулой sys.stdin.read()
,
предварительно дав команду import sys
. Отметим, что при вводе данных
с клавиатуры способ завершения ввода является ОС-специфичным. Обычно
работает клавишесочетание Ctrl-D (возможно, двойное), или же Ctrl-Z, Enter.
Вывод данных
Для вывода данных используется функция print
. Она принимает на вход
произвольное количество данных и печатает их, разделяя пробелами, по
окончании переходя на следующую строчку.
Её поведением можно управлять при помощи именованных входов sep
и end
.
По умолчанию формула print(1,2,3)
эквивалентна
print(1,2,3,sep=' ',end='\n')
. Вход sep
управляет разделителем отдельных
единиц данных, вход end
— завершающим текстом.
Например, чтобы напечатать числа 1, 2, 3 через запятые, завершив печать точкой с переходом на новую строку, можно воспользоваться формулой
print(1, 2, 3, sep = ',', end = '.\n')