Глиф Учебники

Урок 3. Ввод, вывод и арифметика

Курс «Python» · урок 3 из 10 · 3 минуты чтения

Почти каждая программа что-то получает и что-то выдаёт. В этом уроке — вывод на экран функцией print, ввод с клавиатуры функцией input и вычисления с числами.

Вывод: print

В print можно передать несколько значений через запятую — они выведутся в одну строку через пробел. Настройки sep и end меняют разделитель между значениями и окончание строки:

Python
print("Сумма:", 2 + 3)
print(1, 2, 3)
print(1, 2, 3, sep=", ")
print("без перевода строки", end=" ")
print("— продолжение")
print()
print("после пустой строки")
Вывод
Сумма: 5
1 2 3
1, 2, 3
без перевода строки — продолжение

после пустой строки
вызов что выводится, знак за знаком print(1, 2, 3) 1 " " 2 " " 3 ↵ sep sep end по умолчанию print(1, 2, 3, sep=", ") 1 ", " 2 ", " 3 ↵ sep sep end print(1, 2, 3, end=" ") 1 " " 2 " " 3 " " … sep sep end следующий print
print ставит между значениями разделитель sep (по умолчанию пробел), а в конце — end (по умолчанию переход на новую строку); с end=" " следующий print продолжит ту же строку.

Ввод: input

input() ждёт, пока человек наберёт строку и нажмёт Enter, и возвращает набранное:

Python
name = input()
print("Привет,", name)
Ввод
Аня
Вывод
Привет, Аня

В примерах на этом сайте то, что набирают на клавиатуре, показано в блоке «Ввод», а то, что выводит программа, — в блоке «Вывод».

В скобках input можно написать подсказку. Она выводится перед вводом, без перехода на новую строку:

Python
name = input("Как вас зовут? ")
print("Привет,", name)

На экране это выглядит так (имя набрано с клавиатуры):

Текст
Как вас зовут? Аня
Привет, Аня

Числа с клавиатуры

Главное, что нужно запомнить про input: он всегда возвращает строку. Даже если набрать 5, программа получит текст "5". Если сложить два таких ввода, они склеятся: "2" + "3" даст "23". Поэтому ввод сразу переводят в число:

Python
a = int(input())
b = int(input())
print(a + b)
Ввод
2
3
Вывод
5
5 Enter набрано input() "5" строка str int() 5 число int набрали 2 и 3: без int — строки склеиваются "2" + "3" → "23" с int — числа складываются 2 + 3 → 5
input() возвращает набранное как строку "5", а int() превращает её в число 5: без int строки "2" и "3" склеиваются в "23", с int числа 2 и 3 складываются в 5.

int(input()) читает строку и превращает её в целое число, float(input()) — в дробное. Дробную часть при вводе отделяют точкой: 2.5. Если набрать запятую или буквы, программа остановится с ошибкой ValueError — что с этим делать, рассказано в справке input возвращает строку: как ввести число. Как прочитать два числа из одной строки, например 2 3, — в справке Как ввести несколько чисел в одной строке.

Арифметика

ЗнакДействиеПримерРезультат
+сложение7 + 29
-вычитание7 - 25
*умножение7 * 214
/деление7 / 23.5
//целочисленное деление7 // 23
%остаток от деления7 % 21
**возведение в степень7 ** 249
Python
print(7 / 2)
print(6 / 2)
print(7 // 2)
print(7 % 2)
print(2 ** 10)
print(2 + 3 * 4)
print((2 + 3) * 4)
Вывод
3.5
3.0
3
1
1024
14
20

Остаток от деления нужен очень часто: n % 2 == 0 — проверка на чётность, n % 10 — последняя цифра числа, n // 10 — число без последней цифры.

делим 7 на 2 7 // 2 = 3 сколько полных пар 7 % 2 = 1 остаток 7 / 2 = 3.5 обычное деление — результат дробный делим 2024 на 10 2 0 2 4 2024 // 10 = 202 2024 % 10 = 4 без последней цифры последняя цифра
7 // 2 = 3 — столько полных пар выходит из семи, 7 % 2 = 1 — остаток; так же 2024 // 10 = 202 отбрасывает последнюю цифру, а 2024 % 10 = 4 — это она и есть.

Сокращённая запись

Изменить переменную на какое-то число можно короче:

Python
score = 10
score += 5
score *= 2
score -= 1
print(score)
Вывод
29

score += 5 значит то же, что score = score + 5. Так же работают -=, *=, /=, //=, %=. Записи x++, знакомой по другим языкам, в Python нет.

Модуль math и полезные функции

Часть функций есть сразу: abs (модуль числа), round (округление), max и min. Остальные математические функции лежат в модуле math. Модуль здесь — не модуль числа, а готовый набор функций. Его подключают строкой import math в начале программы:

Python
import math

print(math.sqrt(16))
print(math.pi)
print(abs(-5))
print(round(3.14159, 2))
print(max(3, 8, 1), min(3, 8, 1))
Вывод
4.0
3.141592653589793
5
3.14
8 1

Дробные числа неточны

Python
print(0.1 + 0.2)
Вывод
0.30000000000000004

Это не ошибка Python: компьютер хранит дробные числа в двоичном виде, и большинство десятичных дробей записывается в нём лишь приближённо. Для расчётов это почти никогда не важно, а для вывода число округляют. Как вывести ровно два знака после запятой — в справке f-строки и форматирование вывода.

Из-за этой неточности дробные числа не сравнивают через ==: 0.1 + 0.2 == 0.3 даёт False. Сравнивают с допуском, например функцией math.isclose.

Пример: секунды в минуты

Python
total = int(input())
minutes = total // 60
seconds = total % 60
print(minutes, "мин", seconds, "с")
Ввод
135
Вывод
2 мин 15 с

Коротко

Проверьте себя

1. Что выведет программа, если ввести 4 и 5?
Python
a = input()
b = input()
print(a + b)
2. Что выведет программа?
Python
print(17 // 5, 17 % 5)
3. Чему равно 2 + 2 * 2 ** 2?
4. Как вывести числа 1, 2 и 3 через дефис: 1-2-3?