Типизация в 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(ab), где a и b - числа - в комплексное число вида a + b * i (мнимая единица)