Python School
82.6K subscribers
2.39K photos
7 videos
566 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Переменные (ч.3)

Опускайте гласные в существительных. В рунете этой практике только предстоит устояться. А зря. Даже частичное опущение подойдет.
Лямбда-функции (Lambda Functions)

Создавайте небольшие анонимные функции с ключевым словом lambda. Лямбды просто созданы для того, чтобы их использовали в функциях высшего порядка в качестве аргумента. Это, безусловно, позволяет добиться более короткого кода.
Множественное назначение (Multiple Assignment)

Назначьте несколько переменных в одной строке, используя распаковку кортежа. Это невероятно удобный способ разложить любой сложный объект на независимые переменные. 
Извлечение части списка (Slicing)

Используйте извлечение части списка – слайсинг с указанием индексов начального и конечного элементов. Вместо того, чтобы создавать копию my_list, в примере ниже мы напрямую обращаемся к этому объекту. Это рациональное расходование памяти, и на больших объемах данных вы точно оцените эту фичу.
F-строки (F-strings)

Само олицетворение интерполяции, то есть включения переменных в строковые выводы.
«Моржовый» оператор (Walrus Operator)

:= присвоит значение переменной как части выражения.
Включение (Dictionary Comprehension)

Позволит лаконично сгенерировать словари в сравнении с той же for loop, занимающей как минимум две строки. 
any() и all()

Функции проверят, удовлетворяют ли элементы объекта условию. 

any() принимает итерируемый объект (например, список nums) в качестве аргумента и возвращает True, если хотя бы один элемент в списке считается True. Если все элементы ложные или nums пуст, то any() возвращает значение False.

all() тоже принимает такой объект в качестве аргумента и возвращает значение True, если все элементы в нем считаются истинными, или если итерируемый объект пуст. Если там есть хотя бы один элемент, который считается False, то all() вернет False.
zip()

Функция создаст парные строки с именем и возрастом. Что может быть лучше, чем одновременная обработка сразу нескольких составных объектов, вроде списков? Более того, это открывает прекрасные возможности для манипуляции с данными. Вы можете, например, превратить столбцы таблицы в строки, если пожелаете.
Зарезервированные слова для имён переменных

В Python есть список ключевых (или зарезервированных) слов, которые нельзя использовать в качестве имён переменных.

Если нарушить это правило, вы получите сообщение об ошибке SyntaxError: invalid syntax.
Forwarded from Техномотель
От английского издания TechBullion вышло сравнение генеративных нейросетей. Спойлер: сразу две российские модели вошли в топ-10

В тройку лидеров попали нейрогиганты Midjourney, Stable Diffusion и DALL-E 3. На пятом месте расположился Kandinsky от Сбера, а YandexArt замыкает ведущую десятку

Продвигаем отечественные нейросети в массы
Лишняя точка с запятой

В отличие от JavaScript, где точка с запятой используется для
отделения инструкций друг от друга, в Python она просто не нужна.

Это настолько частая ошибка, что многие интерпретаторы игнорируют «;» и выполняют код так, как будто её нет.
Отсутствие двоеточия

Во многих языках программирования после объявления циклов и функций идут фигурные скобки, а в них необходимый код. В Python такие скобки не используются, зато есть двоеточие, о котором многие забывают. Это настолько распространённая ошибка, что большинство редакторов кода подсвечивают места, где двоеточие пропущено.
Операторы «++» и «—»

Если вы начали учить Python после других языков программирования, можете удивиться, что в нём нет привычных операторов инкремента «++» и декремента «—». При их использовании вы увидите ошибку SyntaxError: invalid syntax.
Неправильное копирование словарей и списков

Первое, что приходит в голову новичку, когда нужно сделать
копию словаря или списка — использовать оператор присваивания.

Проблема в том, что благодаря оператору присваивания теперь
при изменении dict_b словарь dict_a тоже будет изменён.
Оператор «+» для конкатенации

«+» — простой и понятный для новичков оператор, но он не всегда является самым эффективным решением для конкатенации. Чем больше строк вам нужно соединить в одну, тем больше плюсов придётся добавить, а это засоряет код. Поэтому для конкатенации лучше использовать f-строки.
Злоупотребление импортом

Начинающие разработчики часто импортируют все имена из модулей.

Так делать не стоит, потому что модуль может содержать большое количество объектов, и импорт всего списка замедлит работу программы. Кроме того, иногда это приводит к дублированию определений идентификаторов, что усложняет чтение кода.
В чём разница между типами list и tuple?

В Python, список (list) и кортеж (tuple) являются двумя различными типами данных, которые предоставляют набор элементов в определенном порядке. Основная разница между ними заключается в том, что список может быть изменен (мутабельный тип), а кортеж является неизменяемым (иммутабельным типом).

То есть, после создания кортежа, вы не можете изменять его содержимое, добавлять или удалять элементы. Это делает кортежи более эффективными по памяти и дает гарантию того, что их содержимое не будет изменено случайно в коде. В то время как список может быть изменен, что было бы очень полезно, если вам нужна коллекция элементов, которые вы можете изменять по ходу выполнения кода.
docstring

Docstring в Python — это строка документации, которая описывает, что делает функция, метод, модуль или класс Python. Данная строка располагается в начале определения объекта и используется для генерации документации автоматически. В других словах, docstring используется для создания описания API и содержит информацию о том, как использовать функцию или метод, какие аргументы они принимают и какие значения возвращают.
Как просмотреть методы объекта

Чтобы посмотреть все методы и атрибуты, связанные с определенным объектом в Python, можно использовать функцию dir(). Она принимает объект в виде аргумента и возвращает список имен всех атрибутов и методов объекта. Например, если нужно увидеть все методы и атрибуты, связанные с объектом my_list.
Что значит конструкция pass

В Python, pass является пустым оператором. Он используется там, где синтаксически требуется оператор, но никаких действий выполнять не нужно. Например, это может быть полезно при написании заглушки функции, которая будет реализована позже, или в цикле, который ничего не должен делать на данной итерации.