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

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

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

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

РКН: clck.ru/3G6pBb
Download Telegram
F-строки

Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.
🐍 Когда мне говорят, что Python слишком простой язык, я показываю канал Python Learning

Здесь я научился:

▪️Превращать текст в голос
▪️Определять локацию по IP
▪️Писать телеграм-ботов
▪️Создавать 3D-игры

Самый необычный канал про Python, подписывайся@Python_per_month
Итерируемые объекты

Иногда нужно работать с файлом, который, как заранее известно, начинается с некоторого числа ненужных строк — вроде строк с комментариями. Для того чтобы пропустить эти строки, можно, снова, прибегнуть к возможностям itertools
Познакомьтесь с профессией 1С-разработчика! Участвуйте в бесплатном онлайн-интенсиве Skillbox с 15 по 17 сентября в 19:00 по московскому времени.

Регистрируйтесь: 👉 https://clc.to/m5p7fA.
Сразу отправим вам на почту чек-лист с пошаговым планом создания базы данных в 1С.

Вы узнаете:

🖱 кто такой разработчик 1С и почему он востребован на рынке;
🖱 какие soft и hard skills нужны в этой профессии;
🖱 что такое платформа 1С и каковы её основные объекты;
🖱 как создавать проводки, документы, отчёты и автоматизировать процессы.

К концу интенсива создадите проект — базу для торгового предприятия.

🎁 Всем участникам подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ. Участвуйте, задавайте вопросы и получите сертификат на 10 000 рублей на любой курс Skillbox.
Получение срезов итераторов

Воспользовавшись методом itertools.islice можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
Срезы итераторов

Если вы попытаетесь получить срез (slice) итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению
Начните изучать профессию тестировщика на бесплатном онлайн-интенсиве Skillbox. Подключайтесь к прямому эфиру с 15 по 17 сентября в 13:00 по московскому времени. За 3 дня пройдёте путь от основ юзабилити до автотестов.

Станьте гуру в востребованной профессии: 👉 https://clc.to/_wb2og
Для новичков в сфере IT:

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

Для начинающего тестировщика:

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

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

🎁 Участвуйте и прокачайте знания. Получите в подарок электронную книгу «Человек + машина» и сертификат на 10 000 рублей на любой курс Skillbox.
Использование метода float()

Если входная строка имеет аргументы за пределами диапазона чисел с плавающей запятой, вы получите ошибку OverflowError.

Для реализации следующих скриптов на Python установите сам Python, а также подходящую IDE (Pycharm, Jupiter, Spyder и т.д.). Создайте новый файл, вставьте туда код и запустите его.
Как перевернуть список в Python с помощью функции reversed()

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

Если вы хотите сохранить возвращаемое значение из функции reversed() для дальнейшего использования, то нужно преобразовать результат в список с помощью функции list(). Далее необходимо присвоить получившееся выражение переменной, в нашем случае my_new_list.
Хотите работать с Python? Участвуйте в бесплатных вебинарах по Machine Learning и научитесь писать программы искусственного интеллекта.

Создайте «умного» чат-бота на онлайн-интенсиве: 👉 https://clc.to/R8ATqg.

Что будет:

💡 познакомитесь с основами Python-разработки;
💡 поработаете с дата-сетами;
💡 создадите чат-бота и подключите его к Telegram.

А ещё будут подарки!

Ждём вас в прямом эфире 19–21 сентября в 21:00 по московскому времени. Участвуйте, задавайте вопросы и получите сертификат на 10 000 рублей на любой курс Skillbox.
Функции reversed()

Важно! Не путайте функцию reversed() с методом .reverse()!

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

В Java, C++ и других статически типизированных языках нужно указывать тип данных возвращаемого значения функции и тип каждого её аргумента. Напротив, Python, как динамически типизированный язык, не вынуждает явно указывать типы данных. На основе присвоенных значений Python отслеживает их сам.
🤔 Освоить Python за полгода и начать работать?

На курсе «Профессия Python-разработчик» это точно возможно. Вы изучите язык с нуля, познакомитесь с фреймворком Django и уже через 6 месяцев сможете устроиться на первую работу. Кстати, эти полгода проходить курс можно бесплатно!

На курсе вы научитесь:

— создавать программы на Python с базами данных: напишете Telegram-бота и — собственную социальную сеть;
— тестировать код;
— работать в команде: пройдёте стажировку вместе с другими участниками курса и создадите маркетплейс под руководством тимлида;
— упаковывать проекты в Docker и применять DevOps-практики.

В конце курса — помощь от Центра карьеры и гарантированное трудоустройство. Если вы не выйдете на работу, мы вернём вам деньги за курс.

Переходите по ссылке, чтобы узнать подробности и оставить заявку на курс: https://clc.to/SoCiUw
Упрощение создания операторов сравнения

Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
​​Хотите узнать, зачем нужен DevOps? Почему компании так активно нанимают DevOps-инженеров и какие задачи стоят перед этими специалистами? Присоединяйтесь к бесплатному онлайн-интенсиву Skillbox, который пройдёт 22–24 сентября в 21:00 по московскому времени.

Подробности: 👉 https://clc.to/WoFdrg.
Тем, кто зарегистрируется, сразу отправим на почту чек-лист «Погружаемся в DevOps».


Кому подойдёт интенсив:
— junior-разработчикам;
— опытным разработчикам и сисадминам.

Вы решите реальную бизнес-задачу и научитесь:
— ориентироваться в подходе DevOps;
— работать с Docker;
— использовать методологию CI/CD.

Спикером интенсива будет Lead DevOps-специалист, руководитель нескольких проектов, команд и онлайн-курсов, ведущий подкастов об IT и образовании — Константин Брюханов.

🎁 Всем дошедшим до конца интенсива подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ. Участвуйте, задавайте вопросы и получите сертификат на 10 000 рублей на любой курс Skillbox.

Присоединяйтесь к прямым эфирам!
Операторы сравнения

Существует немало операторов сравнения. Например — lt, le, gt, ge. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering
Имитация

В вышеприведённом примере экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
Управление тем, что может быть импортировано из модуля, а что — нет

В некоторых языках имеются предельно чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. Например — в Golang экспортируются лишь сущности, имена которых начинаются с большой буквы. В Python же экспортируется всё. Но лишь до тех пор, пока не используется атрибут all
Экономия памяти с помощью slots

Эта функция хорошо сказывается на производительности, но, с точки зрения потребления памяти, это неэффективно. Обычно, правда, проблем эта особенность не вызывает. Однако если вы столкнулись в подобной ситуации с нехваткой памяти — можете попробовать воспользоваться атрибутом slots
Сделайте первые шаги в Data Science всего за 3 дня! Попробуйте свои силы на бесплатном интенсиве Skillbox.

Перейдите по ссылке, заполните форму и узнайте подробности: 🔜 https://clc.to/E0bFhQ.


Что вас ждёт:

✔️ введение в анализ данных и знакомство с основными инструментами;
✔️ погружение в машинное обучение;
✔️ простое объяснение сложной математики в Data Science;
✔️ знакомство с ML и нейросетями;
✔️ «обогащение» данных с помощью Feature Engineering;
✔️ исследование Grid Search и кросс-валидации.

💡 Убедитесь, что вы тоже можете стать специалистом в области машинного обучения!

🎁Участвуйте, задавайте вопросы и получите сертификат на 10 000 рублей на любой курс Skillbox. А всем, кто дойдёт до конца интенсива, подарим электронную книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ.

Используйте возможность! Присоединяйтесь к первой трансляции 26 сентября в 21:00 по московскому времени.
Функция slots

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