Действительно, команда input() считывает строку текста. Однако во многих случаях нам нужно работать именно с числами. Чтобы в Python создать переменную целого типа данных, нужно опустить кавычки при объявлении переменной. Рассмотрим следующий код:

num1 = 7                # num1 - это число
num2 = 10               # num2 - это число
num3 = num1 + num2      # num3 - это число
 
print(num3)

В результате выполнения такой программы будет выведено число 17.

Запомни: числа обозначаются без кавычек, а строки — с кавычками.

Основные операции с числами

В языке Python, как и в математике, над числами можно совершать 4 основные операции (+, -, *, /).

ОператорОписание
+сложение
-вычитание
*умножение
/деление

Приведённый ниже код:

a = 3
b = 2
 
print(a + b)
print(a - b)
print(a * b)
print(a / b)

выводит:

5
1
6
1.5

Порядок выполнения операций

В математике существует порядок выполнения операций, определяющий, какие операции должны выполняться раньше других, даже если в выражении они написаны правее. Порядок выполнения операций в Python аналогичен порядку выполнения операций, которые вы изучали на уроках математики.

Приведённый ниже код:

num1 = 2 + 3 * 4
num2 = (2 + 3) * 4
 
print(num1)
print(num2)

выводит:

14
20

В переменной num1 будет храниться число 14, поскольку первым делом выполняется умножение, а уже затем сложение. В переменной num2 будет храниться число 20, поскольку скобки изменили приоритет выполнения операций.

Запомни: первым делом выполняется умножение или деление, затем сложение и вычитание. Для изменения порядка выполнения операций понадобятся скобки.

Преобразование типов

Преобразование строки к целому числу

Для того чтобы преобразовать строку к целому числу, мы используем команду int().

Приведенный ниже код:

s = '1992'
year = int(s)
 
print(year)

выводит:

1992

Переменная s имеет строковый тип данных. С помощью команды int() мы преобразовали строку к целому числу и записали результат в переменную с именем year. Мы используем новую команду (точнее, функцию) – int(). Она означает следующее: “Возьми то, что указано в качестве аргумента в скобках, и преврати это в целое число”. Таким образом, переменная year имеет целочисленный тип данных, а переменная s – строковый тип данных.

Теперь попробуем написать программу, которая считывает два целых числа и выводит на экран их сумму:

num1 = input()
num2 = input()
 
print(num1 + num2)

Приведенный выше код не дает нам желаемого результата, потому что Python считает, что в переменных num1 и num2 находится текст (строковый тип данных). Так происходит, поскольку команда input() по умолчанию считывает именно текст. Для того чтобы явно указать, что требуется работать с переменными целого типа, надо написать так:

num1 = int(input())
num2 = int(input())
 
print(num1 + num2)

Запомни: для того чтобы считать одно целое число, мы пишем следующий код:

num = int(input())

Преобразование целого числа к строке

Для того чтобы преобразовать целое число в строку, мы используем команду str(). Рассмотрим следующий код:

num = 17
s = str(num)      # теперь в переменной s содержится строка '17'

Переменная num имеет целочисленный тип данных. С помощью команды str() мы преобразовали целое число в строку и записали результат в переменную s. Таким образом, переменная num имеет целочисленный тип данных, а переменная s – строковый тип данных.

Дополнительные операции

Мы познакомились с 4 основными математическими операциями в языке Python: сложение (+), вычитание (-), умножение (*) и деление (/). Добавив ещё 3 операции, мы получим инструментарий, достаточный для написания 99% программ.

ОператорОписание
**Возведение в степень
%Остаток от деления
//Целочисленное деление

Возведение в степень

Для возведения числа в степень используется оператор **.

Приведённый ниже код:

print(2 ** 0)
print(2 ** 1)
print(2 ** 2)
print(2 ** 3)
print(2 ** (-1))

выводит:

1
2
4
8
0.5

Обратите внимание: оператор возведения в степень (**) может возводить не только в положительную степень, но и в отрицательную. Аналогично, основание степени aa также может быть числом отрицательным.

Приведённый ниже код:

print(2**(-2))
print((-3)**3)

выводит:

0.25
-27

Запомни: в отличие от многих языков программирования, в языке Python для возведения в степень используется оператор **, а не ^.

Обратите внимание: оператор возведения в степень (**) является правоассоциативным (значение выражения вычисляется справа налево) в соответствии с правилами математики. Таким образом, выражение x ** y ** z вычисляется как x ** (y ** z).

Приведённый ниже код:

print(2 ** 2 ** 3)     # 2 ** (2 ** 3) = 2 ** 8

выводит:

256

Целочисленное деление

Для положительных чисел оператор целочисленного деления (//) ведёт себя как обычное деление, за исключением того, что он отбрасывает десятичную часть результата.

Приведённый ниже код:

print(10 // 3)
print(10 // 4)
print(10 // 5)
print(10 // 6)
print(10 // 12)

выводит:

3
2
2
1
0

При делении отрицательных чисел необходимо помнить, что результат целочисленного деления не превосходит частное. Другими словами, округление всегда берётся в меньшую сторону.

Приведённый ниже код:

print(10 // 3)
print(-10 // 3)

выводит:

3     # округление в меньшую сторону
-4    # округление в меньшую сторону

Деление с остатком

Оператор деления с остатком (%) возвращает остаток от деления двух целых чисел. Рассмотрим работу данного оператора на примерах.

Приведённый ниже код:

print(10 % 3)
print(10 % 4)
print(10 % 5)
print(10 % 6)
print(10 % 12)
print(10 % 20)

выводит:

1
2
0
4 
10
10