Python RU
13.3K subscribers
900 photos
46 videos
38 files
1.14K links
Все для python разработчиков

админ - @notxxx1

@python_job_interview - Python собеседования

@ai_machinelearning_big_data - машинное обучение

@itchannels_telegram - 🔥лучшие ит-каналы

@programming_books_it - it книги

@pythonl

РКН: clck.ru/3Fmy2j
Download Telegram
ManimPython движок, который позволяет создавать интересные математические анимации

Другими словами, это движок для точных программных анимаций, предназначенный для создания пояснительных математических видео

Примеры использования данного движка (Рекомендую просмотреть)

@pro_python_code
This media is not supported in your browser
VIEW IN TELEGRAM
📊 Alive-progress on Python

letters = [chr(ord('A') + x) for x in range(26)]
with alive_bar(26, dual_line=True, title='Alphabet') as bar:
for c in letters:
bar.text = f'-> Teaching the letter: {c}, please wait...'
if c in 'HKWZ':
print(f'fail "{c}", retry later')
time.sleep(0.3)
bar()


Alphabet |
███████████████████████████▊ | ▃▅▇ 18/26 [69%] in 6s (3.2/s, eta: 3s)
-> Teaching the letter: S, please wait...


Git: https://github.com/rsalmei/alive-progress
Выберите вариант ответа, где все методы есть методами словаря dict().
Anonymous Quiz
40%
get(), set(), keys(), items()
12%
setdefault(), popitem(), pop(), fromkeys()
8%
clear(), get(), push(), index()
20%
update(), remove(), values(), copy()
19%
Узнать ответ
​​Показываем уведомления на рабочем столе

На macOS это очень просто, даже не нужно ставить дополнительный софт и модули, а использовать встроенный osascript.

import os

def notify_macos(title, text):
os.system("""
osascript -e 'display notification "{}" with title "{}"'
""".format(text, title))


notify_macos("Поздравляю", "Ген супер-человека найден!")

На Linux можно пойти схожим путем, задействуя программу notify-send (если у вас Ubuntu, то она почти наверняка уже установлена):

import subprocess as s

def notify_linux(message, title):
subprocess.Popen(['notify-send', title, message])
return

Разработчики на Windows, и о вас я не забуду. Попробуйте win10toast.

# pip install win10toast
from win10toast import ToastNotifier

toaster = ToastNotifier()
toaster.show_toast("Заголовок",
"Текст",
duration=5)

Есть ли кросс-платформенное решение? Да, это библиотека plyer от создателей Kivy.

# pip install plyer
from plyer import notification

notification.notify(
title='Заголовок',
message='Сообщение',
app_icon=None, # e.g. 'C:\\icon_32x32.ico'
timeout=5, # секунд
)

plyer умеет не только уведомления, но и предоставляет унифицированный интерфейс к всевозможным API декстопных и мобильных ОС.
Однако, plyer потребует установки дополнительного софта или модулей для каждой платформы. Когда вы в первый раз запустите код, не удивляйтесь ошибкам. Например, на macOS мне потребовалось установить Cython и pyobjus. Библиотека plyer сам по себе не вытягивает эти зависимости, поэтому в вашем проекте не забудьте их добавить самостоятельно (например, в requirements.txt)
Декораторы Python | Разбираем Декораторы с примерами.

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

Смотреть это видео на youtube:
https://youtu.be/5BqtkdMGqlY
This media is not supported in your browser
VIEW IN TELEGRAM
🏓 Пинг-Понг, пишем классическую аркадную игру на Python.

https://uproger.com/pong-klassicheskaya-arkadnaya-igra-na-python/

@pro_python_code
translatepy - универсальная библиотека и CLI, написанная на Python, для перевода, транслитерации, проверки орфографии, озвучивания текста в речь и поиск слов в словарях, с использованием следующих API:

• Google Translate
• Yandex Translate
• Bing Translate
• DeepL Translate
• Reverso
• MyMemory
• LibreTranslate

Библиотека использует разные лазейки в API для того чтобы бесплатно делать запросы, соответственно не требуются API ключи для работы сервисов перевода. Также есть возможность написать свой API модуль перевода.

#GitHub | #Python #Translation

@pro_python_code
Что выведет код выше
Anonymous Quiz
17%
4
26%
5
29%
None
29%
RecursionError
🔟 Приложение на Python | Каждое в 10 строк кода + видео объяснение кода.


Запуск: git clone https://github.com/qxresearch/qxresearch-event-1

Список проектов

@pro_python_code
О наследовании атрибутов

Видел тут на одном из каналов задачку про поле класса и наследование. Загадывать вам ее не буду, но объяснение приведу. Пусть:

class Abram:
foo = 10

class Barak(Abram):
pass

class Clara(Barak):
pass

print(Abram.foo, Barak.foo, Clara.foo) # 10 10 10


Тут понятно и новичку, что поле foo вроде как "наследуется" классами Barak и Clara у класса Abram. Однако, давайте попробуем его поменять:

Abram.foo = 20
print(Abram.foo, Barak.foo, Clara.foo) # 20 20 20

Barak.foo = 30
print(Abram.foo, Barak.foo, Clara.foo) # 20 30 30

Abram.foo = 40
print(Abram.foo, Barak.foo, Clara.foo) # 40 30 30


Видим, что у класса Barak и Clara значение стало 30, а Abram.foo живет своей жизнью после Barak.foo = 30 и не перестало влиять на прочие классы.

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

В нашем примере будем рассуждать с конца. Чему равно Clara.foo? Есть ли атрибут foo у Clara? Вообще говоря, его нет, ведь мы ни разу не присваивали ничего к Clara.foo:

>>> 'foo' in Clara.__dict__
False

Предок класса Clara – класс Barak. Как только мы написали Barak.foo = 30 в классе Barak появился свой собственный foo:

>>> Barak.foo = 20
>>> 'foo' in Barak.__dict__
True

А до этого атрибут foo был изначально только у Abram. Если теперь написать Clara.foo = 50, то у каждого из классов будет свой foo.

Clara.foo = 50
print(Abram.foo, Barak.foo, Clara.foo) # 40 30 50

Вывод: как только мы присвоим атрибут, то атрибуты классов-предков перестают на него влиять. Будьте внимательны, ведь такая же логика действует и для методов класса.

@pro_python_code
Что выведет код выше?
Anonymous Quiz
37%
True
17%
False
23%
Error
23%
Узнать ответ
💻 Karbon tracks background mouse events and turns them into artistic values!

pip install karbon

Code: https://github.com/furkanonder/karbon

@pythonl
🐍🚀 Django с нуля. Часть 2: регистрация, авторизация, ограничение доступа

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

https://proglib.io/p/django-s-nulya-chast-2-registraciya-avtorizaciya-ogranichenie-dostupa-2022-06-08

Первая часть :🐍🚀 Django с нуля. Часть 1: пишем многопользовательский блог для клуба любителей задач Python

@pro_python_code
SkinDeepнейронная сеть, что позволяет убирать татуировки с любой части тела на фотографиях

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

Не работает с цветными татуировками, в наборе данных их нету

Требуется минимум 3,7 ГБ свободной памяти графического процессора
Flask-boostГенератор приложений на Flask, что помогает ускорить процесс разработки

Особенности:
• Используйте шаблоны для создания приложения Flask.
• Возможность разделять контроллеры, модели, формы, утилиты, активы, страницы Jinja2, макросы Jinja2 на разные каталоги
• Возможность организовывать ресурсы страницы Jinja2 (HTML, JavaScript, CSS) в один и тот же каталог

#Flask #Generator #Python

@pro_python_code
✔️ Пакетная обработка 22 ГБ данных о транзакциях с помощью Pandas.

https://nuancesprog.ru/p/15805/

@pro_python_code
Как легко и быстро создать веб-приложение на базе МО с помощью Python

Независимо от того, сколько моделей вы создали, оффлайн их смогут увидеть лишь несколько человек. Поэтому необходимо их развертывать, чтобы любой смог поработать с ними посредством UI.

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

Читать дальше