Типизация в Python
Python имеет динамическую строгую типизацию и поддерживает вывод типов - посмотрим, что это значит:
Вывод типов - язык сам определяет какой тип у переменной, которую мы задаём, по значению, которое мы в неё сохранили (строка, число, и т. д.)
Динамическая типизация - одна и та же переменная может поочерёдно хранить значения разных типов: к примеру, сначала мы можем сохранить в неё какую-либо строку, а затем, например, преобразовать эту строку в число, и сохранить в ту же самую переменную. Тип переменной сменится со строкового на числовой. Противоположностью этой концепции является статическая типизация - тип переменной задаётся единожды, и мы, например, не сможем сохранить число в переменную с типом "строка", для этого придётся использовать другую переменную.
Строгая типизация - язык не позволяет выполнять операции над несовпадающими типами, даже если они совместимы. Объясним на примере:
Предположим, что у нас есть строка "10" и число 10. Если мы хотим получить из них строку "1010", то мы будем обязаны перед этим преобразовать число 10 в строку (вызвать функцию str(10)), иначе, мы получим ошибку при выполнении программы. Это сработает и в обратную сторону - если мы хотим сложить эти два значения чтобы получить 20, то мы обязаны перед этим преобразовать строку в число (вызвать int("10")), и только затем мы сможем выполнить операцию математического сложения. Противоположностью этой концепции является слабая типизация - язык может автоматически преобразовать значение переменной к подходящему для заданной операции типу.
Для начала, мы предлагаем вам работать с Python в его интерактивном интерпретаторе (REPL). Это позволит вам быстро и удобно экспериментировать с простыми примерами. Например, в интерпретаторе, тип переменной можно узнать с помощью type(имя_вашей_переменной).
Встроенные типы в Python подразделяются на изменяемые и неизменяемые:
К неизменяемым (immutable) типам относятся:
- целые числа (int)
- числа с плавающей точкой (float)
- комплексные числа (complex)
- логические переменные (bool)
- кортежи (tuple)
- строки (str)
- неизменяемые множества (frozen set)
К изменяемым (mutable) типам относятся:
- списки (list)
- множества (set)
- словари (dict)
Для преобразования типов данных существуют следующие встроенные функции:
- str(x) - x в строку (поддерживается любым типом данных)
- int(x) - в целое число в десятеричной системе исчисления (но не всё, что угодно, можно преобразовать в число, не так ли?)
- float(x) - в вещественное число (с плавающей точкой)
- bin(x) - число в двоичную строку
- hex(x) - число в шестнадцатеричную строку
- oct(x) - число в восьмеричную строку
- complex(a, b), где a и b - числа - в комплексное число вида a + b * i (мнимая единица)