Python заметки
448 subscribers
146 photos
14 links
Заявки принимаются автоматически.

Регулярные полезные заметки по практическому Python.
Можно почитать пока компилируется проект :)

Сотрудничество: @m4ff1n
Download Telegram
Взятие элемента по индексу

Как и во многих других языках, нумерация элементов начинается с нуля. При попытке доступа к несуществующему индексу возникает исключение IndexError.

В данном примере переменная a являлась списком, однако взять элемент по индексу можно и у других типов: строк, кортежей.

В Python также поддерживаются отрицательные индексы, при этом нумерация идёт с конца.

#теория
👍5🔥2
Что выведет данный код?
Anonymous Quiz
23%
4
15%
[1, 3]
39%
[4]
24%
ошибку
👍3🔥1
Срезы

В Python, кроме индексов, существуют ещё и срезы.

item[START:STOP:STEP] - берёт срез от номера START, до STOP (не включая его), с шагом STEP. По умолчанию START = 0, STOP = длине объекта, STEP = 1. Соответственно, какие-нибудь (а возможно, и все) параметры могут быть опущены.

#теория
👍4🔥2
Срезы: добавление и удаление элементов

Также с помощью срезов можно не только извлекать элементы, но и добавлять и удалять элементы (разумеется, только для изменяемых последовательностей).

#теория
👍4🔥2
Кортежи

Кортеж, по сути - неизменяемый список.

Для чего нужен:
- Защита от дурака. То есть кортеж защищен от изменений, как намеренных (что плохо), так и случайных (что хорошо).
- Меньший размер.

Пример на картинке выше.

#теория
👍5🔥1
Операции с кортежами

Все операции над списками, не изменяющие список (сложение, умножение на число, методы index() и count() и некоторые другие операции). Можно также по-разному менять элементы местами и так далее.

Например, гордость программистов на python - поменять местами значения двух переменных (см. картинку выше).

#теория
👍4🔥1
Словари (dict)

Словари в Python - неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.

Чтобы работать со словарём, его нужно создать.

На картинке пример создания с помощью литерала.

#теория
👍3🔥2
Методы словарей

dict.clear() - очищает словарь.

dict.copy() - возвращает копию словаря.
classmethod dict.fromkeys(seq[, value]) - создает словарь с ключами из seq и значением value.

dict.get(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default.

dict.items() - возвращает пары (ключ, значение).

dict.keys() - возвращает ключи в словаре.

dict.pop(key[, default]) - удаляет ключ и возвращает значение. Если ключа нет, возвращает default.

dict.popitem() - удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.

dict.setdefault(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ со значением default (по умолчанию None).

dict.update([other]) - обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None.

dict.values() - возвращает значения в словаре.

#теория
👍3🔥1
Множества

Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке.

#теория
👍5🔥1
Методы множеств

С множествами можно выполнять множество операций: находить объединение, пересечение...

len(s) - число элементов в множестве (размер множества).

x in s - принадлежит ли x множеству s.

set.isdisjoint(other) - истина, если set и other не имеют общих элементов.

set == other - все элементы set принадлежат other, все элементы other принадлежат set.

set.issubset(other) или set <= other - все элементы set принадлежат other.

set.issuperset(other) или set >= other - аналогично.

set.union(other, ...) или set | other | ... - объединение нескольких множеств.

set.intersection(other, ...) или set & other & ... - пересечение.

set.difference(other, ...) или set - other - ... - множество из всех элементов set, не принадлежащие ни одному из other.

set.symmetric_difference(other); set ^ other - множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.

set.copy() - копия множества.

#теория
👍5🔥1
Трехместное выражение if/else

Обычная условная конструкция в примере довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано трехместное выражение if/else.

В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z.

#теория
👍3🔥2
frozenset

Единственное отличие set от frozenset заключается в том, что set - изменяемый тип данных, а frozenset - нет. Примерно похожая ситуация с списками и кортежами.

#теория
👍5🔥1
Именные функции, инструкция def

Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def.

Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.

Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!).

Функция может и не заканчиваться инструкцией return, при этом функция вернет значение None.

#теория
👍3🔥2
Аргументы функции

Функция может принимать произвольное количество аргументов или не принимать их вовсе. Также распространены функции с произвольным числом аргументов, функции с позиционными и именованными аргументами, обязательными и необязательными.

#теория
👍3🔥1
Переменное количество параметров в функции

Функция также может принимать переменное количество позиционных аргументов, тогда перед именем ставится *

Как видно из примера, args - это кортеж из всех переданных аргументов функции, и с переменной можно работать также, как и с кортежем.

#теория
👍5🔥1
Универсальные функции

Функция может быть любой сложности и возвращать любые объекты (списки, кортежи, и даже функции!)

#теория
👍4🔥1
Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) - основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

#теория
👍5
Трехместное выражение if/else

Обычная условная конструкция в примере довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано трехместное выражение if/else.

В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z.

#теория
👍4
Цикл while

While - один из самых универсальных циклов в Python, поэтому довольно медленный. Выполняет тело цикла до тех пор, пока условие цикла истинно.

#теория
👍5