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

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

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

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

РКН: clck.ru/3G6pBb
加入频道
Вам нравится находить баги и искать ошибки в коде? Попробуйте себя в разных направлениях тестирования на бесплатном онлайн-интенсиве Skillbox. Подключайтесь к прямому эфиру с 17 по 19 апреля в 15:00 по московскому времени: 👉 https://epic.st/Iehs_S

Что будет:

📎 знакомство с профессией;
📎 изучение основ и ключевых инструментов тестирования;
📎 проведение первых тестов.

Если вы начинающий тестировщик:

📍 структурируете знания, изучите правила юзабилити и стандарты тестирования в крупных IT-компаниях;
📍 научитесь проверять сервисы на баги через API с помощью инструмента Postman.

Спикер интенсива — старший специалист по тестированию, организатор тест-сессий, митапов по тестированию и мастер-классов, участник конференций SQA-days, TechTrain и CodeFest Дмитрий Якин.

🎁 Участвуйте и прокачайте знания. Получите в подарок электронную книгу издательства МИФ и сертификат на скидку 10 000 рублей на любой курс Skillbox.
Используйте модуль functools для функционального программирования

Модуль functools содержит несколько функций для функционального программирования, таких как reduce, partial, cached_property и другие. Например, reduce применяет функцию к элементам последовательности, последовательно сокращая ее до одного значения, partial позволяет частично применять аргументы к функции, возвращая новую функцию, которая ожидает оставшиеся аргументы.
Используйте модуль asyncio для асинхронного программирования

Модуль asyncio предоставляет инструменты для асинхронного программирования в Python, такие как корутины, событийный цикл и другие. Асинхронное программирование позволяет выполнять несколько задач параллельно, не блокируя основной поток выполнения. Например, с помощью asyncio можно создать асинхронные серверы и клиенты, выполнять HTTP-запросы, обрабатывать сигналы и т.д.
Используйте модуль multiprocessing для многопроцессорного программирования

Модуль multiprocessing предоставляет инструменты для многопроцессорного программирования в Python, такие как процессы, очереди и т.д. Многопроцессорное программирование позволяет распараллеливать выполнение задач на несколько ядер процессора, ускоряя работу кода.
Используйте модуль contextlib для управления контекстом

В этом примере мы используем модуль contextlib для создания контекстного менеджера. Контекстный менеджер - это объект, который используется для управления контекстом выполнения определенного участка кода. Для создания контекстного менеджера мы определяем функцию my_context, которая возвращает генератор, использующий ключевое слово yield. Мы вызываем наш контекстный менеджер с помощью определенного ключевого слова.
Используйте встроенные функции и модули для ускорения разработки и упрощения кода

Python предоставляет множество встроенных функций и модулей, которые упрощают работу с файлами, базами данных, сетевыми протоколами и другими задачами. Например, для чтения и записи файлов можно использовать функции open, read и write, а для работы с базами данных можно использовать модуль sqlite3.
Используйте функции высшего порядка для создания более красивого и гибкого кода

Функции высшего порядка - это функции, которые принимают другие функции в качестве аргументов и/или возвращают другие функции в качестве результата. Такие функции позволяют создавать более красивый и гибкий код, который легко расширять и изменять. Например, можно создать функцию, которая принимает другую функцию в качестве аргумента и применяет ее ко всем элементам списка.
Используйте многопоточность для ускорения выполнения задач

Многопоточность - это подход к программированию, в котором задачи разбиваются на более мелкие части, которые выполняются параллельно в разных потоках. Многопоточность позволяет ускорить выполнение задач на многоядерных процессорах и в операционных системах, поддерживающих многопоточность.
product

Когда программа становится сложной, неизбежно приходится писать вложенные циклы. Однако вложенные циклы делают программы более сложными для чтения и сопровождения.

К счастью, в Python всегда можно избежать вложенных циклов с помощью встроенной функции product().
Оператор морж

Начиная с Python 3.8, появился новый синтаксис под названием «оператор морж» или walrus operator, который может присваивать значения переменным как часть более крупного выражения.

Оператор := получил свое милое название из-за глаз и бивней моржа.
Самый легкий способ мерджить словари

Слияние словарей - частое действие в программировании на Python. Существует множество способов сделать это. Но все они были уродливы до версии Python 3.9.

Начиная с Python 3.9, мы наконец-то получили самый элегантный способ объединения словарей - использование операторов объединения.
Используем * для мерджа списка, кортежа и множества в одну строчку

Звездочки можно использовать в качестве префиксов для распаковки их элементов. Но помимо распаковки, звездочки также можно использовать для деструктуризации присваиваний в Python. С помощью одной звездочки переменная mid получает элементы в середине в виде списка.
ТРЕБУЮТСЯ ПРОГРАММИСТЫ для работы в международных компаниях!  

Обучение с 0 в удобном  формате: 
offline-обучение в группах до 16 человек (филиалы в 200+ городах России);
online-обучение с живыми преподавателями (а не говорящими головами). 

Компьютерная академия TOП — это: 

актуальная программа обучения, с которой вы станете профессионалом, даже если до этого не слышали о программировании;

– практика и реальные навыки;

дружелюбная атмосфера и обучение с элементами геймификации; 

готовое портфолио и возможность найти работу еще до окончания обучения;

ГАРАНТИРОВАННОЕ ТРУДОУСТРОЙСТВО (или возврат‼️денег за обучение). 

💡 Студентов академии ждут в Яндексе, Сбербанке, 2Гис, Microsoft и других компаниях, куда нелегко устроиться и после 6 лет университета! 

💰 Средняя зарплата при первом трудоустройстве — 60 000 рублей

Стать крутым программистом может каждый! Академия TOП это доказала. 

ОСТАВЬТЕ заявку и получите бонусы:
👉 https://bit.ly/41bhdda
Используем встроенные функции в Python для написания стандартной логики

В Python есть несколько встроенных функций, которые помогают при написании некоторых стандартных логических операций.

Например, функция map() - известная и часто используемая функция. Она получает два параметра, один из которых - функция, а другой - итератор. При выполнении функции map функция применяется к каждому элементу в итераторе.
Давно хотели попробовать свои силы в программировании и понять, ваше ли это? Отлично! Практический мини-курс по Python как раз для тех, кто хочет познакомиться сразу с несколькими направлениями Python-разработки и решить, что нравится больше 😉

Зарегистрируйтесь сейчас, получите гайд по профессии и узнайте, почему Python — идеальный язык для новичка: https://epic.st/f2eghe

Много практики не бывает. Погрузитесь в мир Python-разработки вместе с руководителем направления по исследованию данных в Сбере — Анастасией Борневой:
— создадите бота для Telegram, который умеет переводить голос в текст;
— «научите» бота обрабатывать фотографии;
— познакомитесь с парсингом данных;
— напишете сайт с помощью фреймворка Flask — инструмента, который помогает быстро создавать любые проекты: интернет-магазины, социальные сети, образовательные платформы и т. д.

После просмотра видеоматериалов вас ждёт онлайн-встреча со спикером. В прямом эфире вы сможете обсудить практические работы и задать вопросы о профессии.

Все участники буткемпа получат сертификат на скидку 10 000 рублей на любой курс Skillbox и электронную книгу издательства МИФ «Разум под контролем». Ах, да, самое важное — бессрочный доступ! Материалы курса будут доступны вам всегда — сможете вернуться к ним в любое время.

Участвуйте!
Валидные значения словаря

В словарь можно поместить что угодно – вы не ограничены числами или строками. Можете поместить списки внутрь словаря и получить доступ к вложенным значениям.
Оператор Walrus

По какой-то причине оператор "Walrus" в Python 3.8 (:=) стал довольно популярным. Он может быть полезен в ситуациях, когда вы хотели бы присвоить значения переменным внутри выражения. Например, это спасло одну строку кода и неявно предотвратило вызов some_func дважды.
Использование оператора Walrus (ч.1)

Непарентизированное "выражение присваивания" (использование оператора walrus) ограничено на верхнем уровне, следовательно SyntaxError в a := "wtf_walrus" утверждение первого фрагмента. Заключая в скобки, он работал так, как ожидалось, и назначал a.
Говорят, что среди программистов больше мужчин, чем женщин. Проверим, так ли это. Какого вы пола?
Anonymous Poll
83%
Мужской
17%
Женский
Использование оператора Walrus (ч.2)

Синтаксис оператора Walrus имеет вид, NAME:= exprгде NAME - допустимый идентификатор, а expr - допустимое выражение. Следовательно, повторяемая упаковка и распаковка не поддерживаются, что означает, (a := 6, 9) эквивалентно ((a := 6), 9) и, в конечном счете, (a, 9) (где a значение равно 6').

Как обычно, заключение в скобки выражения, содержащего = operator, не допускается. Отсюда синтаксическая ошибка в (a, b = 6, 9).
Строки

Обратите внимание, что оба идентификатора одинаковы. Поведение в этом фрагменте связано с оптимизацией CPython (называемой интернированием строк), которая в некоторых случаях пытается использовать существующие неизменяемые объекты вместо того, чтобы каждый раз создавать новый объект.