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

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

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

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

РКН: clck.ru/3G6pBb
加入频道
Базовый синтаксис

Мы можем использовать цикл for для перебора списка, кортежа или строк.
Вывод строки по отдельным символам

Иногда при работе со строками нам нужны отдельные буквы. В таких случаях мы можем использовать цикл for для перебора символов и их печати.
Веб-разработчики создают сайты и приложения — от простых лендингов до продвинутых маркетплейсов и стриминговых сервисов. Эти IT-специалисты разрабатывают frontend — видимую часть сайтов, и backend — внутреннюю логику, которая находится на сервере и скрыта от пользователей.

Чтобы попробовать и решить, подходит ли вам это направление IT, записывайтесь на бесплатный мини-курс: https://epic.st/Pk4V8N

За 5 дней вы:
— узнаете, сколько зарабатывают веб-разработчики и как попасть в профессию с нуля;
— попробуете себя в одной из самых востребованных IT-специальностей, разберёте типовые задачи frontend- и backend-разработчиков;
— создадите свои первые проекты — сайт, приложение и сервис — и на практике убедитесь, что стать веб-разработчиком реально в любом возрасте, независимо от опыта и знаний.

Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. 19 лет работает в сфере Java и веб-разработки, руководит командами разработки в разных проектах. Автор 10 курсов по программированию и карьере программистов.

Всех участников ждут подарки!
— Сертификат на скидку 10 000 рублей на любой курс.
— Доступ к изучению английского языка в Skillbox на год.
— 5 полезных материалов по веб-разработке, HTML, CSS, PHP и JavaScript.
— Персональная карьерная консультация с тестовым доступом к понравившейся профессии.

Присоединяйтесь! Подробная программа — по ссылке: https://epic.st/Pk4V8N
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Перебор списка с помощью цикла for

Цикл for один из самых основных элементов в Python. Список и кортеж – повторяемые объекты. Мы можем использовать цикл для перебора их элементов.
Использование reversed()

Функция reversed() позволяет получить обратный порядок элементов в списке.

В этом примере мы используем функцию reversed() для получения списка чисел в обратном порядке.
Аннотации типов (type hints) для улучшения читаемости кода

В этом примере мы используем аннотации типов для функций add и greet. Указываем типы аргументов и возвращаемое значение после двоеточия (:). Такие аннотации улучшают читаемость кода, помогают разработчику понимать ожидаемые типы данных и могут быть использованы средами разработки для статического анализа кода и автодополнения.
Модуль subprocess

В этом примере мы используем модуль subprocess для выполнения внешних команд. Мы используем функцию subprocess.run для выполнения команды и получения результатов ее работы. Метод capture_output=True позволяет перехватить вывод команды, а text=True указывает, что вывод нужно интерпретировать как текст. Метод input позволяет передать входные данные для команды.
Преуспеть в на рабочем месте просто — получаешь оффер, отдаешь все задачи ChatGPT и фармишь шестизначные суммы. Так выглядит успех для тех, кто разбирается в нейронках.

Главное тут — изучить уникальный вводный курс по дообучению ChatGPT. Там ребята доступным языком объяснили, как создать 9 нейро-сотрудников и почему с этим справится даже новичок всего за 5 уроков.

Зарегистрироваться на бесплатный курс и получить гайд можно по ссылке.
Декораторы классов

В этом примере мы определяем декоратор add_hello, который добавляет вывод "Hello!" перед вызовом метода greet в классе MyClass. Мы применяем декоратор к методу greet с помощью @add_hello, и теперь при вызове obj.greet(), помимо обычного приветствия, будет также выведено "Hello!".
Модуль unittest или библиотека pytest для написания и автоматического тестирования кода

В этих примерах мы используем модуль unittest и библиотеку pytest для написания и запуска тестов нашего кода. В обоих случаях мы определяем функцию add, которую хотим протестировать, и функции тестов для проверки ее работоспособности. В unittest мы создаем класс TestAddFunction и определяем в нем метод test_add, который содержит утверждения с помощью self.assertEqual. В pytest тестовая функция просто использует утверждения assert.
Модуль pickle

В этом примере мы используем модуль pickle для сериализации объекта data (словарь) в байтовую строку с помощью pickle.dumps. Затем мы десериализуем байтовую строку обратно в объект с помощью pickle.loads и получаем исходный словарь.
Модуль asyncio для асинхронной работы с сетью и вводом-выводом

В этом примере мы используем модуль asyncio для асинхронного выполнения трех задач, которые имитируют запросы к разным URL-адресам. Мы определяем асинхронную функцию fetch_data, которая ожидает выполнения ввода-вывода (в данном случае, ожидание 2 секунды с помощью await asyncio.sleep(2)). Затем мы используем asyncio.gather для параллельного выполнения всех трех задач в функции main.
Асинхронные библиотеки, такие как aiohttp, для эффективной работы с сетью в асинхронном режиме

В этом примере мы используем асинхронную библиотеку aiohttp для выполнения асинхронных запросов к разным URL-адресам и получения данных в формате JSON. Мы определяем асинхронную функцию fetch_data, которая использует aiohttp.ClientSession() для создания сессии и session.get(url) для выполнения асинхронного GET-запроса. Затем мы используем await response.json() для получения данных из ответа в формате JSON.
Модуль logging для логирования ошибок и событий в вашей программе

В этом примере мы используем модуль logging для логирования ошибки деления на ноль. Мы настраиваем логирование с помощью logging.basicConfig и указываем уровень логирования (level=logging.DEBUG), формат сообщений (format='%(asctime)s - %(levelname)s - %(message)s') и файл, в который будут записаны логи (filename='app.log'). Затем мы используем логирование в функции divide для записи информации об успешном делении или ошибке деления на ноль.
Модуль contextvars для работы с контекстными переменными в асинхронном коде

В этом примере мы используем модуль contextvars для работы с контекстными переменными в асинхронном коде. Мы создаем контекстную переменную user_id с помощью contextvars.ContextVar и устанавливаем ее значение с помощью user_id.set() внутри асинхронной функции greet_user. Значение переменной доступно только в рамках текущего контекста выполнения. Таким образом, при каждом вызове greet_user мы можем устанавливать и получать разные значения контекстной переменной.
Asyncio.Queue для обмена данными между асинхронными задачами

В этом примере мы используем asyncio.Queue для обмена данными между асинхронными задачами producer и consumer. producer производит данные и помещает их в очередь с помощью queue.put(), а consumer забирает данные из очереди с помощью queue.get() и обрабатывает их. Когда producer завершает работу, мы помещаем специальное значение None в очередь, чтобы consumer завершил свою работу.
Модуль asyncio.Lock для синхронизации доступа к общим ресурсам

В этом примере мы используем asyncio.Lock для синхронизации доступа к общим ресурсам, чтобы предотвратить конкурентный доступ к общей переменной из нескольких асинхронных задач. Обе задачи update_counter используют один и тот же объект lock для получения блокировки перед обновлением счетчика. Только одна задача может захватить блокировку и выполнять обновление, в то время как другая задача ожидает, пока блокировка не будет освобождена.
Функция range()

В python range() – одна из встроенных функций. Она используется с циклом for для выполнения блока кода определенное количество раз.
break

В
python break используется для преждевременного выхода из цикла for. Он предназначается для прерывания цикла при выполнении определенного условия. Допустим, у нас есть список чисел, и мы хотим проверить, присутствует ли число. Мы можем перебрать список чисел и, если число найдено, выйти из цикла, потому что нам не нужно продолжать перебирать оставшиеся элементы.
Continue

Оператор continue используется внутри цикла, чтобы пропустить выполнение тела цикла for для определенного условия. Допустим, у нас есть список чисел, и мы хотим вывести сумму положительных чисел. Мы можем использовать операторы continue, чтобы пропустить цикл для отрицательных чисел.