Python | Программирование
9.87K subscribers
1.82K photos
2 videos
139 files
1.53K links
Python без границ для всех

Владелец, реклама @Ak_Mihail

Преобрести рекламное размещение: https://telega.in/c/Python_libr
加入频道
Forwarded from T | Контент
📌 exception.add_note('oh no!')

В Python3.11 у BaseException появился метод add_note(text), который добавляет дополнительную информацию об исключении.

Так можно передать, как исправить ошибку или воспроизвести её. В PEP 678 представлены хорошие примеры, когда стоит использовать метод.

#урок
Пишем 3 программы на Python за 5 минут

• Питон все же крутая штука! За урок мы разработаем три вполне хорошие программки, что можно спокойно использовать в вашей повседневной работе. И да, постараемся уложится в 5 минут!

🧷 https://youtu.be/uFzNc7D44HI

#Видео
📌 Exception Chaining

Это связывание нескольких ошибок в один traceback. Используется, если при обработке исключения нужно добавить информацию или изменить тип.

Исключение, добавленное с raise ... from exc, сохраняется в __cause__. Если ошибка произошла во время выполнения try/except, то она запишется в __context__.

📕 PEP 3134

#урок
📌 Иерархия ошибок

Встроенные ошибки наследуются от Exception, их «родственность» вы видите на фотографии.

Если поставить except LookupError раньше чем except IndexError, то второй обработчик никогда не сработает, ошибку обработает первый except.

Поэтому важно знать к какому типу какие ошибки относятся и не ставить except OSError поверх FileExistsError.

#урок
🧩 Распределение памяти в Python: сколько и в каких случаях занимают типы данных

• В этом материале разберем, как устроено выделение памяти под объекты в Python. Потом кратко о том, как работает очистка памяти от неиспользуемых объектов. И, наконец, о разнице в занимаемой памяти на примере типов list, dict и tuple.

🧷 https://tproger.ru/articles/raspredelenie-pamjati-v-python-skolko-i-v-kakih-sluchajah-zanimajut-tipy-dannyh/

#Статья
🧩 Превращаем код на Python в исполняемый EXE-файл

• В этой статье мы научимся создавать «экзешники» при помощи двух библиотек: Pyinstaller and auto-py-to-exe.

• Перед тем, как продолжить чтение статьи, скачайте этот репозиторий. Он здорово поможет вам понять процесс, если вы будете повторять все шаги вместе с нами.

🧷 https://tproger.ru/articles/prevrashhaem-kod-na-python-v-ispolnjaemyj-exe-fajl/

#Статья
📌 Подсчет суммы цифр в числе

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

Алгоритм действий будет следующим:
• Преобразуем число в строку при помощи функции str();
• Число может быть как int, так и float, следовательно необходимо произвести замену десятичного разделителя '.' при помощи строкового метода str.replace();
• Преобразовываем полученную строку с числом в список строк с цифрами функцией list();
• Далее преобразовываем каждый элемент полученного списка строк с цифрами в список целых чисел используя функцию map();
• Применяем функцию sum() к итоговому списку.

📕 Документация

#урок
📌 Python Development Mode

Новинка в Python 3.7. Включается с помощью аргумента -X dev при запуске скрипта. Выводит предупреждения, если разработчик что-то делает не так:

- не закрывает файлы после работы
- использует корутины без await
- передаёт неизвестную кодировку в str.encode()
- неправильно пользуется памятью

📕 Документация

#урок
Шпаргалка по pandas

• Эта библиотека для анализа данных прекрасно себя зарекомендовала в Data Science. Такая шпаргалка поможет в построении различных диаграмм с использованием pandas

🧷 https://cheatography.com/zayd/cheat-sheets/pandasplotting/

#Шпаргалка
📌 __debug__

Если скрипт не запущен с аргументом -O, у константы будет значение True. В таком случае выражение assert выполнится всегда.

Мы можем задать __debug__ значение False, выполнив скрипт с -O и ускорить работу проекта, убрав проверку на ошибки с assert.

Задать значение константе из приложения не получится, выдаст SyntaxError в Python 3.10+ или NameError.

📕 Документация

#урок
📌 Считаем число "Души" (нумерология).

• Есть такая эзотерическая концепция "Нумерология", согласно которой числа определяют нашу жизнь и существование всего, что нас окружает. Так вот, в ней есть понятие "числа души человека", которое считается сложением всех цифр в дате его рождения, пока не получится число, которое меньше 10. То есть число от 1 до 9.

• Например, есть дата рождения 29.09.2019 г. Тогда число души считается следующим образом:
2 + 9 + 9 + 2 + 2 + 2 = 26
2 + 6 = 8

• Изобразим подсчет числа "Души" на языке Python. Для краткости, воспользуемся понятием выражения генератора-списка:

📕 Документация

#урок
📌 Type hints

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

Type hints помогают автодополнению в IDE понять, что за тип у этой переменной и предложить правильные команды.

Также если передать неправильный тип данных, то IDE выдаст предупреждение, но ошибки не будет.

#урок
Как бесплатно получить годовую лицензию на PyCharm Pro

• Для старта в Python достаточно и бесплатной Community версии. Однако, чтобы к моменту вашего развития у вас бесплатно появилась Professional версия, нужно после освоения git создать свой публичный репозиторий и регулярно вносить в него изменения не менее 3 месяцев.

• После этого можно попросить годовую лицензию.

🧷 https://youtu.be/8B4aUGGZIF0

#Видео
📌 collections.abc

У классов есть магические методы и каждый такой метод образует объект определённого типа: __call__ — Callable (функцию), __len__ — Sized.

Модуль хранит в себе абстрактные классы такие объектов. Их можно использовать в качестве аннотаций, базовых классов.

📕 Документация

#урок
Полиморфизм в Python. Что такое Утиная типизация?

• Сегодня разговор пойдет про третьего кита в ООП - Полиморфизм. Как обычно нас будет интересовать, что это такое и зачем это нужно программисту.

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

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

🧷 https://youtu.be/MwsIOSZAkN8

#Видео
Почему not not value быстрее bool в Python?

• В данном видео узнаем почему not not value быстрее bool в Python. Рассмотрим примеры и сделаем тесты производительности.

• Также стоит добавить, что вам не нужно использовать такую запись в вашем коде, хоть это и работает быстрее.

🧷 https://youtu.be/r6mOP2enJYo

#Видео
Хешируем строки

Хеширование — это преобразование массива (в нашем случае — строки) любой длинны в набор битов фиксированной длинны.

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

Для работы с этим в Python есть библиотека hashlib. Она содержит в себе SHA256, SHA384, SHA512, MD5 и другие хэш-функции.

Всё, что вам надо — создать экземпляр необходимой функции (в нашем случае — MD5) и заполнить его значениями с помощью update().

Далее вы можете получить данные, используя digest() в байтовом виде или hexdigest() в шестнадцатеричном виде.

📌 Документация

#Урок
Big Data, дополненная реальность и компьютерное зрение

• В сегодняшнем выпуске в гостях Data Scientist компании Banuba - Вячеслав Архипов.

• Слава провел полный экскурс в мир data sciense и анализа данных. Они поговорили про нейронные сети, про генетические алгоритмы, про data sets, про big data, про machine learning, про deep learning, про компьютерное зрение, про биржевую торговлю, про augmented reality (дополненная реальность) и про многое другое. Мощное техническое интервью с математиком!

🧷 https://youtu.be/tQYCd8tg56U

#Видео
Получаем данные прямо из буфера обмена

В этом нам поможет модуль pyperclip. Он упростит работу с буфером обмена и позволит не думать о кроссплатформенности.

📌 Установка: pip install pyperclip

Вот его основные возможности:

paste() — берёт текст из буфера обмена. На unix-подобных системах, в терминале, при выделении текста он копируется в другой буфер, так что для получение таких данных добавьте primary=True.

copy(text: str) — принимает строку и сохраняет её в буфер.

#Урок
🧩 Что должен знать каждый разработчик Python: 8 основных технологий

• У каждого разработчика имеется свой набор технологий и инструментов, которые он использует в своей работе. Их выбор осуществляется в течение всего профессионального пути.

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

🧷 https://itproger.com/news/chto-dolzhen-znat-kazhdiy-razrabotchik-python-8-osnovnih-tehnologiy

#Статья