Встроенные типы в Python и интересные моменты


27.02.2020 — Про Python


Перечислите и скажите пару слов об известных Вам встроенных типах данных. В конце можете перичислить из стандатрных пакетов.

int, float, bool, str. Очень интересно, ага, да. Или рил интересно?

Целые числа

У интов есть методы, ведь у нас тут всё классы. Поэтому можно так: (1).bit_lenght(), а ещё .(to/from)_bytes. Больше интересного нет.

Числа с плавающей точкой

Класс float - имплементация абстрактного класса Real. Тоже есть методы, например, такой классный как .is_integer() и .hex()

Если в комплексном нам нужна j в конце для обозначения, то тут точка.

a = 1.
b = 1.1

Комплексные числа

a = 27j - тип complex (даа, j в конце).

Модуль math при sqrt(-1) выдаст исключение, а модуль cmath - комплексное число.

Типы последовательностей: list, tuple, range

List мутабельный, можно объявить как []. Доступен конструктор list(), можно использовать списковое включение (о нем потом).

Tuples - кортежи не мутируются. Объявляются как (), конструктор tuples(). Есть один маленький рофл, который не всем заходит.

a = 1,

type(a) - tuple

type(1,) - int

Т.е. кортеж не обязательно должен объявляться через круглые скобки. Мы бывает юзаем кортежи в возврате методов и там просто перечисляем что вернуть через запятую. Понятное дело, такое работает не везде. Если мы хотим передать кортеж в арги, то обязательно используем скобки:

foo((1, ))

Ranges - не мутируются. Исключительно конструктором передаём минимум один арг - stop. range(start, stop, step). В памяти только три арга и хранит.

Строки

Без лишних комментариев. Объявляем ‘tak’, “tak”, ‘’’tak’’’ и “””tak”””

Для строк у нас есть еще обозначения перед ними:

  • r - raw string - игнорим бэкслеш;
  • b - бинарные
  • f - строки для форматирования.

Типы бинарных последовательностей

bytes(), bytearray(), memoryview()

Для всех типов-последовтаельностей доступны такие фичи как in, например (a in b, где b - последовательность)

Типы множеств

Коллекция без порядка. Недопустимы дубликаты в элементах.

Set - мутабельный, frozenset - нет (можно получить хэш).

Тип словарь

dict() - мутабельный.

.keys() - ключи, .values() - значения, .items() пары (ключ, значение)

Да, есть ещё встроенные типы, но вверху основные представители без уж ну самых скучных.

А теперь прост список типов из пакетов, ы:

datetime: timedelta, date, datetime, time, timezone, tzinfo.

collections: Counter, deque, defaultdict, OrderedDict, namedtuple

И ещё много-много всего, но мы ведь хотим успеть и на другие вопросы на собесе ответить.

Недавние посты


© marshal.by 2020

Исходный код

Сайт работает на Gatsby + prismic и опубликован на GitHub.