Действительно, команда 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