Полезные материалы для питониста по Фреймворкам Django, Flask, FastAPI, Pyramid, Tornado и др. По всем вопросам @evgenycarter № 4869337666
Советы по Python
1. Объем памяти объектаimport sys
x = ‘farhadmalik’
print(sys.getsizeof(x))
2. Вывод текущей директорииimport os
print(os.getcwd())
3. Вывод импортированных модулейimport sys
imported_modules = [m.__name__ for m in sys.modules.values() if m]
4. Получение ID текущего процессаimport os
os.getpid()
@BookPython
Советы по Python
1. Объединение списков с помощью Zip
Берет несколько коллекций и возвращает новую коллекцию.
Каждый элемент новой коллекции содержит по одному элементу из всех исходных коллекций.
Так мы получаем «пересечения» сразу по нескольким коллекциямname = ‘farhad’
suffix = [1,2,3,4,5,6]
zip(name, suffix)
→ возвращает (f,1),(a,2),(r,3),(h,4),(a,5),(d,6)
2. Освобождение памяти
Механизм сборки мусора вручную можно настроить по времени или событиям.import gc
collected_objects = gc.collect()
3. Использование декораторов
Декораторы добавляют функциональность коду. То есть это функции, вызывающие другие объекты/функции. Будучи вызываемыми функциями, декораторы возвращают объект, который будет вызываться при вызове функции-декоратора.
Вспомните о декораторах, которые реализуют аспектно-ориентированное программирование.
Мы можем обернуть класс/функцию, и тогда каждый раз при вызове функции будет выполняться определенный код.
Данный пример показывает, как можно вывести название функции. Это тестовый пример для вызова декоратора. С помощью декораторов можно вызывать логгеры (logger), выполнять операции по обеспечению безопасности и т.д.def my_logger(function):
@functools.wraps(function)
def logger(*args, **kwargs):
print(function.__name__)
return function(*args, **kwargs)
return logger
Теперь воспользуйтесь этим в своих функциях:@my_logger
def hi():
print ‘hi’
@my_logger
def bye(a):
print ‘bye’ + a
4. Распаковкаname = ‘farhad’
suffix = [1,2,3,4,5,6]
result = zip(name, suffix)
→ возвращает (f,1),(a,2),(r,3),(h,4),(a,5),(d,6)
unzipped = zip(*result)
5. Присоединение коллекцииname = [“FinTech”, “Explained”]
print(“ “.join(name))
@BookPython
Советы по Python
1. Необязательные аргументы
Мы можем передавать необязательные аргументы через присвоение стандартного значения аргументу:def my_new_function(my_value=’hello’):
print(my_value)
#Вызывается
my_new_function() => выводит hello
my_new_function(‘test’) => выводит test
2. Неизвестное количество аргументов через *arguments
Если функция может принимать любое количество аргументов, то перед названием параметра добавьте *:def myfunc(*arguments):
for a in arguments:
print a
myfunc(a)
myfunc(a,b)
myfunc(a,b,c)
3. Словарь в качестве аргумента через **arguments
Так вы сможете передавать в функцию разное количество аргументов ключевых слов.
В качестве аргументов ключевых слов можно также передавать и значения словаря:def myfunc(**arguments):
return arguments[‘key’]
4. Функция с несколькими выводами
Если функция должна возвращать несколько значений, то:resultA, resultB = get_result()
get_result() может вернуть (‘a’, 1), который является кортежем
5. Цикл в одну строку[Variable] AggregateFunction([Value] for [item] in [collection])
@BookPython
Советы по Python
1. Реверсx = ‘abc’
x = x[::-1]
2. Отрицательный индекс
Если вы хотите начать с последнего знака, то воспользуйтесь отрицательным индексом.y = ‘abc’
print(y[-1]) # вернет "c"
3. Пересечение множеств
Чтобы найти общее двух множествa = {1,2,3}
b = {3,4,5}
c = a.intersection(b)
4. Разность множеств
Чтобы найти различия двух множеств:a = {1,2,3}
b = {3,4,5}
c = a.difference(b)
5. Объединение коллекций
Чтобы получить четко выраженное объединение двух множествa = {1,2,3}
b = {3,4,5}
c = a.union(b)
@BookPython
Советы по Python
1. Распаковка элементов массиваfirst_name, last_name = [‘Farhad’, ‘Malik’]
print(first_name) #выводится Farhad
print(last_name) #выводится Malik
2. Обмен значений переменныхfirst_name, last_name = [‘Farhad’, ‘Malik’]
last_name, first_name = first_name, last_name
print(first_name) #выводит Malik
print(last_name) #выводит Farhad
3. Профилирование и статистика кодаimport cProfile, pstats, StringIO
pr = cProfile.Profile() pr.enable()
# ... что-то делает ... pr.disable()
s = StringIO.StringIO()
ps = pstats.Stats(pr, stream=s).sort_stats(‘cumulative’)
ps.print_stats()
print s.getvalue()
4. Повторение строки‘A’*3 А повторится трижды: AAA
5. Срезy = ‘Abc’
y[:2] = ab
y[1:] = bc
y[:-2] = a
y[-2:] = bc
@BookPython
Декораторы в python
Как устроены декораторы в python?
Как передать аргументы в декоратор?
Делаем предобработку аргументов в декораторе в python
источник
@BookPython
Пишем простой ML веб-сервис на FastAPI
Данный туториал пошагово разбирает процесс создания веб-приложения для определения тональности текста на основе NLP-модели.
Мы будем использовать модель из библиотеки Hugging Face Hub, но описанный подход подойдет для любой задачи машинного обучения.
План:
Загрузка и подготовка модели машинного обучения для использования в веб-сервисе.
Создание веб-сервиса с помощью FastAPI.
Изучение пользовательского интерфейса FastAPI для удобного ручного тестирования и демонстрации работы приложения.
Написание автоматических тестов с помощью библиотеки pytest.
Запуск приложения в Docker-контейнере.
Код доступен на GitHub.
https://habr.com/ru/articles/729380/
@BookPython
Асинхронный файловый api-сервис
Идея написать данную статью родилась после моего фейла по разработке данного сервиса. Суть задачи была проста — написать сервер с базовыми методами сохранения и отдачи файлов и сервисными методами по специфичной обработке файлов. Обмен данными (тело запроса, возвращаемые данные) я реализовал через json, про асинхрон идею упустил. По началу всё было хорошо, файлы не превышали размер нескольких мегабайтов, методы использовались редко. Но буквально через пару месяцев размеры файлов стали измеряться десятками мегабайт, количество запросов сотни в минуту. Сервис стал тормозить, возникали ошибки совместного доступа к файлам. «Никогда Штирлиц не был так близок к провалу».
В этом кейсе я покажу как я переписал код базовых методов.
В проекте будут использованы библиотеки asyncio, aiohttp для обеспечения асинхронности сервиса.
https://habr.com/ru/articles/729340/
@BookPython
Простой способ развернуть телеграмм бота с Aiogram + Webhook на хостинг
Расскажу самый простой и бесплатный способ развернуть на хостинге телеграмм бота, написанного на aiogram и перевести на webhook.
Бот будет работать 24/7 пожизненно. 🙂
Без использования VPS, фреймворка (django, flask, fastapi,..), pythonanywhere и heroku.
Краткое описание действий:
1. Через FTP поместить наш файл бота на хостинге.
2. Через SSH установить библиотеку aiogram.
3. Настроить сервис бота на хостинге.
4. Настроить сайт на переадресацию всех запросов на сервис бота.
5. Отредактировать файл запуска бота с учетом наших настроек.
0:00 - Задачи
0:40 - О "Polling"
1:16 - О "Webhooks"
1:47 - Привязка токена и URL
2:17 - Запуск локально с ngrok
3:09 - Схема работы на хостинге
3:51 - Регистрация на хостинге
4:05 - Настройка FTP, SSH
4:37 - Подключение по FTP, установка Aiogram
5:06 - Настройка сервиса бота
6:37 - Настройка сайта, Redirect
7:55 - Редактирование файла бота, запуск
9:20 - Переход с "polling" на "webhook"
9:43 - Второй способ
https://habr.com/ru/articles/730310/
@BookPython
Разработка идеального pypi пакета с поддержкой разных версий python
Это небольшой мануал/история о том, как создать "идеальный" pypi пакет для python, который каждый желающий сможет установить заветной командой: pip install my-perfect-package
Ориентирована на новичков, но призываю и профессионалов высказать свое мнение, как можно улучшить "идеальный" пакет.
Что значит "идеальный" пакет?
Буду исходить из следующих требований:
- Open source на github;
- Поддержка всех актуальных\популярных версий python (2.7, 3.5, 3.6, 3.7, 3.8);
- 100% покрытие юнит тестами;
- Использование CI:
- Актуальная документация;
- Кроссплатформенность разработки;
- Пакет полезен и делает мир лучше.
https://habr.com/ru/articles/483512/
@BookPython
Python-проект - Рисуем Дораэмона
Многие из нас в детстве смотрели аниме-сериал “Дораэмон”. Дораэмон — это кот-робот, пришедший из будущего с целой коллекцией гаджетов. Попробуем нарисовать Дораэмона в Python.
Мы будем использовать библиотеку turtle, которая помогает создавать фигуры и картинки.
https://pythonflood.com/python-project-draw-doraemon-9c067ccca8c3
@BookPython
Шесть удивительных неизвестных библиотек Python
Последние два года я активно использую Python. В результате я постоянно нахожусь в поиске замечательных библиотек, которые могут улучшить мою работу в проектах по разработке данных и бизнес-аналитике.
1. Pendulum
2. ftfy
3. Sketch
4. pgeocode
5. rembg
6. Humanize
Divithraju/six-amazing-unknown-python-libraries-c7bdad6b4472" rel="nofollow">https://medium.com/@Divithraju/six-amazing-unknown-python-libraries-c7bdad6b4472
@BookPython
Python. Практический
Скачиваем котировки
Объединить книги Excel
Объединить книги Excel 2
Создать Progress Bar
Объединить листы книги Excel
Объединить книги Excel и листы в них
Объединить множество CSV
Таблицы из множества интернет-страниц
Многостраничное извлечение таблиц с Requests и BS4
Скрапинг/Парсинг сайтов с Selenium и BS4
источник
@BookPython
Python. Импорт данных
1. Импорт Excel№2. Импорт CSV
3. Импорт с веб-сайта (HTML)
4. Импорт таблиц XML
5. Импорт таблиц из PDF
5. Импорт таблиц из PDF (расширенная версия)
6. Импорт таблиц из Word
7. Импорт таблиц из Word
источник
@BookPython
JetBrains и Python Software Foundation рассказали, как разработчики использовали Python в 2022 году
JetBrain совместно с Python Software Foundation опубликовали результаты большого исследования, помогающего понять, как разработчики использовали Python в 2022 году. Исследование строится на базе опроса разработчиков. В 2022 году в нём приняло участие более 23 тыс. человек из почти 200 регионов.
https://habr.com/ru/news/766124/
@BookPython
✅ Узнать об Avito Career
Пусть это будет вашим первым шагом на пути к офферу мечты, ведь в Avito Career мы каждый будний день рассказываем о новых вакансиях разных грейдов в различные команды — от разработчиков разных направлений до тимлидов команд.
Никакого спама, только вакансии и стажировки Авито. Подписывайтесь 😎
Всем, привет, мы исследовательское агентство SmartMinds и сейчас проводим опрос среди IT специалистов. Что хотим узнать: что важно при выборе работодателя, какие каналы являются эффективными при поиске работы и ходите ли вы на мероприятия для IT. Опрос анонимный, займет не более 3-х минут и мы будем благодарны всем, кто примет участие ❤️
Пройти опрос
Курс «Фулстек-разработчик» от Яндекса. Начните с нуля.
1) Программа 2023 года и самые актуальные технологии.
2) HTML, CSS, JavaScript, TypeScript, React, Node.js, Docker и алгоритмы.
3) Реальные проекты в портфолио, карьерная поддержка
Попробуйте курс бесплатно
Зарегистрироваться
#реклама 16+
practicum.yandex.ru
О рекламодателе
Срочно нужны деньги? Займер выручит в любое время!
Первый займ - бесплатно!
Без проверки кредитной истории, просрочек.
Быстрая выдача.
Оформление онлайн!
Перейти на сайт
#реклама
zaymer.ru
О рекламодателе
Ответьте на 1 вопрос и книги ваши на 30 дней бесплатно!
Доступ к Букмейту для вас и трех ваших близких бесплатно на 30 дней. Попробуйте!
Узнать больше
#реклама 16+
mrqz.me
О рекламодателе
Обучение на тренера по конному спорту. Диплом 2023!
Погрузитесь в профессию тренера по конному спорту всего за 3 месяца и начните применять новые знания сразу после прохождения курса!
Мы предлагаем:
- Квалификация: Тренер по конному спорту. (340 часов)
- Московский диплом о профпереподготовке с гос. лицензией за 3 месяца;
- Дистанционное обучение;
- Удобное мобильное приложение;
- Обучение в любое время, можно совмещать с основной работой;
- Доступ к учебным материалам навсегда.
Сделайте свой первый шаг к успешной карьере в любимом деле уже сегодня!
Ознакомиться с программой и получить бесплатную консультацию по курсу:
Подать заявку
#реклама
niidpo.ru
О рекламодателе
Стань Тестировщиком и получи работу через 4 месяца!
Самая актуальная удаленная профессия 2024 года!
Тестировщик сайтов и мобильных приложений - IT профессия без кодинга, математики и технического образования.
Вы научитесь проверять работу сайтов и приложений, находить ошибки и прогнозировать сбои.
Во время учебы соберете портфолио из 14 проектов, а через 4 месяца получите первую работу!
**Курс участвует в осенней распродаже до -45%!
Подать заявку
#реклама
bangbangeducation.ru
О рекламодателе
Курс Графического дизайна со стажировкой в IT-компаниях
Преподаватели — ведущие дизайнеры из «Яндекса», Авито, «Сбера».
Практика на реальных задачах и брифах компаний Ozon и Самокат.
Научитесь создавать логотипы, фирменный стиль и рекламные материалы.
Изучите Photoshop, Illustrator, Figma и подготовите портфолио из 7 проектов.
Попробовать
#реклама
bangbangeducation.ru
О рекламодателе
Курс Тестировщик ПО. Трудоустройство через 4 месяца!
Профессия Тестировщик идеально подходит новичкам. Неважно, какой у вас уровень. Главное — начать!
Этот курс для вас, если:
- Вы хотите с нуля освоить востребованную IT-профессию, но не готовы тратить годы на обучение.
- Вы не знаете, какое направление выбрать, и волнуетесь, что ошибётесь с курсом.
- Вы не до конца уверены в своих силах и сомневаетесь, что сможете попасть в IT без опыта.
- Вам не хватает мотивации, чтобы начать.
Трудоустроим или вернём деньги!
Вас ждёт индивидуальная поддержка HR-специалиста. Вместе вы составите резюме, подготовите портфолио и разработаете карьерный план, который поможет найти работу быстрее. Сможете выбрать привлекательные вакансии и получите приоритет перед другими соискателями.
Подать заявку
#реклама 16+
skillbox.ru
О рекламодателе
Курс "Дизайнер интерьеров" с трудоустройством!
Обучение на дизайнера интерьеров квартир с нуля в онлайн-школе BBE.
Преподаватели — ведущие дизайнеры Crosby Studios, BŪRO.
Вы освоите Photoshop, ArchiCAD, 3Ds Max и подготовите
портфолио из 4 проектов!
Через 6 месяцев вы получите достаточно знаний, чтобы брать первые рабочие заказы. Дизайнеры интерьеров с опытом работы и портфолио зарабатывают в среднем 150–200 тысяч рублей в месяц.
Подать заявку
#реклама
bangbangeducation.ru
О рекламодателе
Террасная доска из ДПК
Woodgrand – производитель доски ДПК. Доставка по РФ с оплатой при получении! Звоните!
Получить предложение
#реклама
woodgrand.ru
О рекламодателе
Есть ли работа в IT без программирования?
Самая востребованная онлайн профессия 2024 года - Продакт-менеджер в IT!
Продакт-менеджер отвечает за создание и развитие продукта — мобильного приложения, сайта или услуги.
Освоить профессию можно меньше, чем за 1 год - с нуля, без опыта и образования.
На курсе Продакт-менеджер от Bang Bang Education вы:
- Научитесь создавать и развивать цифровые продукты
- Добавите в портфолио 27 кейсов и прототип IT-продукта
- Получите работу после 6 месяцев обучения
- Будете учиться у экспертов из Google, «Яндекс», «Тинькофф», VK
Бронируй место со скидкой 45% только в октябре!
Подать заявку
#реклама
bangbangeducation.ru
О рекламодателе
Курс «Python-разработчик» от Яндекса. Начните с нуля.
Программа 2023 года.
Диплом о переподготовке и помощь с поиском работы.
Рассрочка.
Зарегистрироваться
#реклама 16+
practicum.yandex.ru
О рекламодателе
Онлайн-обучение психологов с гарантией трудоустройства
На программе от Среды обучения и Московского института психоанализа вы узнаете, что такое современная психология, и на практике освоите основные подходы в консультировании.
В конце курса получите диплом и начнете работать с клиентами — с поиском поможет карьерный центр. Покажем, как выстроить личный бренд, настроим сайт и соцсети, составим резюме и подберем вакансии от проверенных работодателей.
Узнать больше
#реклама
psychology.sredaobuchenia.ru
О рекламодателе
Курс: Финансовое моделирование. Учись бесплатно!
Вы узнаете, как составлять финансовые модели компаний из разных отраслей, и поймёте, как построить такую модель для своего бизнеса.
Попробовать
#реклама 16+
skillbox.ru
О рекламодателе