#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from Moscow Python (Valentin Dombrovsky)
Итоги года для Moscow Python Podcast от Яндекс.Музыки.
Если вы пользуетесь ЯМ и ещё не подписались на нас, можно сделать это тут: https://music.yandex.ru/album/6892837

А общее количество прослушиваний Moscow Python Podcast на русском на всех платформах (не считая просмотров на Ютубе) за всё время превысило 0.5 млн.!
Forwarded from Хитрый Питон
На мой взгляд, одной из больших проблем как у тех, кто приходит в разработку так и у тех, кто довольно давно в ней работает. Это умение не просто хорошо писать код, а умение структурировать проект. Понимать, чем хорошая архитектура отличается от плохой. В книгах часто описываются высокоуровневые абстрактные концепции и дальше возникает вопрос — все это хорошо, но вот у меня есть проект на условной Джанге, как все это применить?

На выходных я разбирал закладки и наткнулся на несколько неплохих практических "около архитектурных" гайдов, про которые хочу рассказать:

1. Django Styleguide - гайд который ребята из HackSoftware развивают уже несколько лет. Если вы не читали - очень рекомендую, много хорошего можно утащить для своего проекта. Там хорошо описано как структурировать проект так, чтобы код было легче развивать, поддерживать и тестировать. Гайд постоянно развивается и обновляется https://github.com/HackSoftware/Django-Styleguide

2. Django API Domains - пример применения некоторых принципов Domain-Driven Design в Django. Тут как и в предыдущем гайде использован довольно прагматичный подход - вместо того, чтобы тащить все что есть в DDD, автор предлагает достаточно простую, легко реализуемую и поддерживаемую структуру проекта. Это не "чистый DDD", но лично мне такой подход больше нравится своей простотой. Гайд небольшой и не очень активно развивается, но я все равно рекомендую потратить время и ознакомиться с ним https://phalt.github.io/django-api-domains/

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

P.S. Я попробовал включить комментарии в канале, надеюсь сработает 🙂 Если у вас есть другие хорошие гайды по архитектуре python-веб-приложений - кидайте в комменты, я по итогам сделаю еще один пост.
Forwarded from Хитрый Питон
Tryo Labs опубликовали ежегодный обзор "Top Python Libraries 2022". Обзор несколько субъективный и смещен в сторону анализа данных/машинного обучения, но все равно но его интересно посомтреть с точки зрения " какие из этих библиотек я знаю/пробовал?". Мне было интересно пробежаться по предыдущим выпуска - самый ранний вышел в 2015 году. https://tryolabs.com/blog/2022/12/26/top-python-libraries-2022
Python для начинающих на практике - парсинг вакансий [2021]

Чему вы научитесь:
▪️Переменные в Python
▪️Функции в Python
▪️Типы данных
▪️Позиционные и именованные аргументы
▪️Циклы и условия
▪️Практика: парсер вакансий с сайтов по поиску работы

📚Размер: 2,55 ГБ
💰Цена: 1 590 руб.

🧷Скачать бесплатно

🎭IT Pirate
Основы_искусственного_интеллекта_в_примерах_на_Python.pdf
49.7 MB
📖 Основы искусственного интеллекта в примерах на Python

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

Большое внимание уделено применению специализированных библиотек PyBrain, Scikit-learn, Keras, TensorFlow для формирования структуры нейронных сетей и их обучения и библиотек ImageAI и OpenCV для обработки изображений. Материал иллюстрирован простыми и понятными примерами, демонстрирующими использование предварительно обученных нейронных сетей для распознавания объектов на изображениях, создания собственных наборов данных, формирования структуры сети, ее обучения и практического применения.

Автор: Анатолий Постолит
Год: 2021
Язык: Русский
Страниц: 445

#python
Как создать таймер в Python

С помощью данного модуля можно легко планировать и откладывать запуск своего кода на определенное время

#python
⌨️ Отступы
На самом деле, вопрос об отступах является одним из наболевших в программировании. В 2016 году разработчики компании Google решили произвести анализ кода разработчиков, лежащего на ресурсе GitHub, и выявить наиболее популярный способ форматирования текста для разных языков программирования.

Проанализировав 400 тысяч репозиториев, они получили следующую картину. Для большинства языков программирования (Java, Python, JavaScript, PHP) разработчики преимущественно используют пробел, однако в языке С более популярным способом форматирования является табуляция.

#python
🔠ℹ️ Литералы

Чтобы указать, что функция может принимать заранее известные значения ("left", "center", "right"), используется тип Literal.

Его можно заметить в open(). Функция принимает 'r', 'rb', 'w', но если передать 'kwargs', IDE выдаст предупреждение.

Literal можно вкладывать друг в друга: Literal['a', Literal['b']]. Это удобно для связывания нескольких литералов.

📌 PEP 586

#python
ℹ️🦖 IPython

Знаете ли вы, что существует оболочка и для IPython? Если вы во всю работаете с интерактивной оболочкой, но не знаете самого IPython, то однозначно присмотритесь к этому пункту!

Особенности:
— Комплексная интроспекция объекта;
— История ввода, которая хранится в течение сеансов;
— Кэширование результатов вывода в течение сеанса с автоматически генерируемыми указателями;
...

Сайт: https://github.com/ipython/ipython
#python
🐊7️⃣ расширенных возможностей Python

💬 Python - один из самых продвинутых языков программирования, который широко используется во многих отраслях. Он обладает множеством расширенных функций, которые делают его мощным инструментом в руках опытных программистов.

Вот подборка из 7 наиболее полезных расширенных возможностей Python.
👆🏻Читать статью
#python
🔖📝Шпаргалки - основы по функциям и типам данных

#python
💫🆚🐼 Pyspark. Анализ больших данных, когда Pandas не достаточно

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

И всегда наступит момент, когда ресурсов станет недостаточно. В данной статье мы рассмотрим, как PySpark выручает в условиях нехватки мощностей для обработки данных.

👆🏻Читать...
#python
🗞⚠️ types.MappingProxyType

Доступный только для чтения словарь. По своей сути — Read-only обертка для словаря. Данные считывать можно, а менять — нельзя.

#python
🔢▶️ from enum import Enum

Библиотека для создания именованных перечислений. Признайте, что намного проще понять STATUS_CODE.ACCEPTED, чем просто 202.

Несмотря на свою простоту, у модуля огромный функционал. Если у вас в коде есть магические числа (1, 2, 3, 4), то воспользуйтесь enum.

#python
🔥🔄 Ускоряем цикл в Python в 33000 раз
python почти всегда позволяет решить одну задачу разными способами, тут-то самое время вспомнить о map!
Многие утверждают, что map более безопасный, быстрый, и вообще - это база. Проверим? Сгенерируем тренировочный список из 100000 отрицательных и положительных чисел.

lst = random.sample(range(-10000000, 10000000), 100000)

🟢 А теперь воспользуемся тремя методами и применим к списку встроенную функцию abs.

- For Loop
lst_pos = []
for i in lst:
lst_pos.append(abs(i))
Время работы: 7.98 ms.

- List Comprehension
lst_pos = [abs(i) for i in lst]
Время работы: 5.07 ms.

- Map
lst_pos = map(abs, lst)
Время работы: 419 ns.

Феноменально, при работе со встроенными функциями, map не просто в лидерах, он в 12000 раз быстрее! Может остальные методы нам и вовсе не нужны?

🔵 Давайте проверим map на невстроенных функциях, например, возведем элементы в квадрат.

- For Loop затратит 23 ms.
- List Comprehension - 20.9 ms.
- Map (используем lambda):
map(lambda x: x**2, lst)
Время работы: 628 ns.

Это ли не чудо? Map быстрее в 33000 раз! Мы вам скажем, по секрету, что map вообще-то не очень жалует использование lambda (это несколько снижает скорость). А если бы мы преобразовали возвращаемый map объект в список, то затраченное время стало бы примерно таким же, как у list comprehension. Но! Map очень любит работать с готовыми функциями, в том числе с определенными пользователем. Поэтому напишем функцию pow2, которая принимает x и возводит его в квадрат - x * x.

- List Comprehension:
[pow2(x) for x in lst]
Время: 8.6 ms.

- Map
map(pow2, lst)
Время: 401 ns.

Никого уже, наверное, не удивляет, map опять быстрее, в 20000 раз. Причем обратите внимание, ускорилась работа list comprehension - 8.6 ms против 20.9 ms, хотя делали мы одно и то же, просто разными способами. Берем на заметку!

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

- For Loop отработает за 26.3 ms.
- List Comprehension за 25.8 ms.
- Map, увы, не позволит сделать нам ничего подобного. Она может невероятно быстро применить функцию к каждому элементу массива, но удалить элемент - не может. Для таких случаев есть filter:
filter(lambda x: x**2 % 8 == 0, lst)
И время: 542 ns.

Ну что же, можно забывать про list comprehension и циклы, зачем они вообще нужны, когда есть map и filter, которые всегда в тысячи раз быстрее. Да?

Нет! Наверняка, знакомые с функцией map, уже хотят подловить нас на обмане. А именно, map никогда не возвращает список, только map object, и это именно то, что отличает его от “конкурентов” и позволяет map оставаться впереди.

Да, ни в одном из наших примеров, мы не формировали из возвращаемого map object - список. Это существенно замедлило бы работу map, но даже если сделали бы - map все равно остался бы быстрее приблизительно в 1,5 - 2 раза (опять же, кроме случаев с использованием lambda). Но если вам так же, не нужны все вычисляемые значения сразу - выбирайте map, и тоже будете быстрее в 33000 раз!

#python
🎓💻 Лучшие известные программисты всех времен

0️⃣ Изобретатель языка программирования Python, Ван Россум — один из известных программистов, оказавших неизгладимое влияние на мир программирования. Ван Россум вырос в Нидерландах, и там же он получил образование. Он получил степень магистра математики и информатики в Амстердамском университете. Не только в Python, Ван Россум также внес свой вклад в развитие языка ABC. В 1989 году он разработал Python, когда искал хобби-проект, чтобы провести выходные. Так работают гении?

1️⃣ Финно-американский программист Линус Торвальдс - создатель ядра Linux и системы управления версиями Git. В 1994 году Торвальдс презентовал перед студентами Хельсинкского университета Linux 1.0 (её исходники лежат на kernel.org). Этот был первый стабильный релиз, пригодный для коммерческого использования. Предыдущие версии OC с завидной регулярностью выдавали баги, но теперь всё изменилось.
В 2014 году самый популярный дистрибутив Ubuntu отчитался, что его используют 22 миллиона пользователей. Linux стала самой популярной не только в коммерческой среде, но и в сфере высших достижений. Все самые мощные машины из рейтинга топ-500 суперкомпьютеров работают на Linux.
Сегодня всего устройств на Linux насчитывается от 3 до 3,5 миллиардов. Так что дело Торвальдса точно можно назвать успешным.

#python