Подборка лучших книг для изучения Python на русском языке (+ссылки на скачивание)
— Изучаем Python
Автор: Марк Лутц
— Изучаем Python
Автор: Эрик Мэтиз
— Изучаем программирование на Python
Автор: Пол Бэрри
— Автоматизация рутинных задач с помощью Python
Автор: Эл Свейгарт
— Легкий способ выучить Python 3
Автор: Зед А. Шоу
— Python. К вершинам мастерства
Автор: Лусиану Рамальо
— Python Книга рецептов
Авторы: Дэвид Бизли, Брайан К. Джонс
— Глубокое обучение на Python
Автор: Франсуа Шолле
#книги
Словарное включение: и такое есть, не только списковое
Многим из нас знакома концепция List Comprehension (списковое включение) — эффективный способ перебрать список. Оказывается, на выходе можно получить еще и словарь!
В своем минутном видео в формате YouTube Shorts пользователь b001 показывает, как создать словарь, описывающий длины имён. Вы наверняка догадываетесь, как получить длины имен списком, но как добиться такого представления, как ниже?{'Daniel': 6, 'Mike': 4, 'William': 7}
#лучшиепрактики
Переход с Python на Go
Если вы пишете на Python, то скорее всего, в вашей жизни уже попадался человек, который предсказывал скорую смерть этого ЯП и предлагал перейти на Golang.
Возможно, вы даже задумываетесь о переходе. В статье разобрали кейсы из практики и показали, кто где побеждает.
#лучшиепрактики
Топ самых полезных магических команд для завсегдатаев Colab
Составили подборку из девяти команд для Google Colab / Jupyter Notebook и показали, как они работают на примерах, а также дополнили фишечками.
#ipython #pythonMagic
Python для Ad hoc аналитики на BigQuery
Рассказали в статье, как создавать запросы с помощью BigQuery API (библиотеки, упрощающей обращение с хранилищем), как записывать и читать данные.
#BigQuery
Как скачивать посты Instagram на Python
Opensource-библиотека instaloader позволяет обойти блокировку соцсети на территории РФ, а также скачать фотографии, теги к ним, сторис и другие медиафайлы, cгрузить комментарии. Инструмент также позволяет детально настраивать фильтры.pip install instaloader
import instaloader
loader = instaloader.Instaloader()
target_profile = "<ссылка на профиль>"
loader.download_profile(target_profile, profile_pic=False, fast_update=True)
#лучшиепрактики
Splat-оператор
Splat (одна звездочка) расширяет коллекцию до позиционных аргументов, а splatty-splat (две звездочки) расширяют словарь до именованных аргументов:
Этот код:args = (1, 2)
kwargs = {'x': 3, 'y': 4, 'z': 5}
func(*args, **kwargs)
Равнозначен следующему:func(1, 2, x=3, y=4, z=5)
#факты
itertools.compress: удобный способ фильтрации данных
В своем уроке UProger описывает, как фильтровать первый список leaders на основе вспомогательного списка selector.
#лучшиепрактики
Устроиться на работу в IT и зарабатывать 100 000 руб., пока ChatGPT работает за вас
Думаете это сказки? Нет. Это обычный день человека, который знает, как пользоваться нейросетью.
И так может каждый. Главное — изучить уникальные гайды в области ИИ, такие как этот. В этих мануалах простым языком рассказывают, как заработать с помощью нейросетей.
Внутри: как начать, какую работу за вас может делать нейронка и почему даже новичок сможет заработать с помощью нейронных сетей.
Регистрируйтесь на бесплатный курс — это последний вагон, чтобы успеть воспользоваться возможностями тренда.
Реклама ООО «Тэрра Эйай»
Как получить расширенную информацию о картинке
Увидеть подробные метаданные изображения (с появлением цифровой фотографии это назвали EXIF): дату создания, тип камеры, и даже факт разворота позволяет утилита exifread:import exifread
from PIL import Image
import logging
def _read_img_and_correct_exif_orientation(path):
im = Image.open(path)
tags = {}
with open(path, 'rb') as f:
tags = exifread.process_file(f, details=False)
if "Image Orientation" in tags.keys():
if 4 in val:
logging.debug("Изображение отзеркалено.")
im = im.transpose(Image.FLIP_TOP_BOTTOM)
#лучшиепрактики
Ребят, ищем человека вести некоторые из ваших любимых каналов
Нам нужен ответственный, грамотный и влюбленный в IT товарищ — развивать и облагораживать часть telegram-каналов нашего проекта.
Если хотите стать частью нашей уютной команды, узнайте подробнее о вакансии и пишите нам. Давайте познакомимся и сработаемся: http://tprg.ru/bqed
Найдись, тот самый человек! Главред грустит.
#вакансии #работа
Railway.app: сервер с бесплатным пробным тарифом
Чтобы не мучаться с серверами и портами, а также деплоить приложения из GitHub-репозитория и прочих источников можно на railway.app. Основное преимущество — выделенные бесплатные, пусть и скромные ресурсы. В trial-версии вам предоставят:
— 512 MB RAM;
— 1 Гб места;
— 5 демо-долларов или 500 часов работы;
— Поддержка на уровне Discord-чата.
Поиск в Google на Python
Библиотека googlesearch-python частично избавляет от необходимости создавать сложных пауков, имитирующих действия живого человека на selenium и позволяет тонко настраивать результаты поиска: количество, язык, подробность ответа (заголовок, URL, описание).pip install googlesearch-python
from googlesearch import search
search("Поисковый запрос", advanced=True)
>>>
# - title
# - url
# - description
Шпаргалка SQL → Pandas
— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.
PyCon Russia 2023 — самая большая и душевная конференция для python-разработчиков
В этом году отмечается 10-летний юбилей Пайкона! А это значит, что 28 и 29 июля вас ждут:
— мощные доклады в Python и Data треках;
— мастер-класс по поиску узких мест в коде;
— встречи с другими разработчиками и дата-сайентистами;
— вкусная еда и кофе;
— развлечения и подарки от ведущих IT-компаний.
Заинтересовало? А что если мы скажем, что по промокоду TPROGER
вы получите ещё 10% скидку на билет. Мероприятие пройдёт в Старт Хаб на Красном Октябре.
Подробности и билеты можно найти по ссылке: https://pycon.ru/
Реклама ИП Герасимович Юлия Владимировна ИНН 667110267678 LjN8KWsMz
Как выделить записи за предыдущий месяц
Допустим, вы работаете с API хранилища наподобие BigQuery и хотите обработать записи за предыдущий месяц (например, рассчитать эффективность бота). Не столь очевидно решение, как создать такую выборку. Здесь нам поможет библиотека datetime и ее модули timedelta, date:from datetime import timedelta, date
last_day_of_prev_month = date.today().replace(day = 1) - timedelta(days = 1) # Последний день предыдущего месяца
start_day_of_prev_month = date.today().replace(day = 1) - timedelta(days = last_day_of_prev_month.day) # Первый день предыдущего месяца
Теперь мы можем навесить на датафрейм маску:mask = (monthlyEffectiveness['receiveTimestamp'] >= start_day_of_prev_month) & (monthlyEffectiveness['receiveTimestamp'] <= last_day_of_prev_month)
lastMonthSessions = monthlyEffectiveness.loc[mask]
#datetime
Декораторы в Python
Так прекрасно, когда непростые концепции объясняют за столь короткое время! В своем минутном видео формата YouTube Shorts пользователь b001 показывает на примере, что такое декораторы (их еще называют wrappers — «обертки») и как они позволяют передать функцию в качестве аргумента.
#лучшиепрактики
Blurfaces: обеспечиваем конфиденциальность людей
Это удобная утилита, которая позволяет скрывать лица на видео. Для работы с ней достаточно передать путь к видео и изображению того, чьё лицо нужно скрыть. Возможно и обратное: скрыть всех, кроме одного лица. git clone git@github.com:raviksharma/blurfaces.git
python3 blur_faces.py friends.mp4 --mode allexcept --model cnn --censor-type facemasking --in-face-file media/Ross_Geller.jpg
#blurfaces
Как заставить функцию print() «окружить» слово повторяющимися символами
Вечно можно смотреть на три вещи: огонь, воду, и как очередной разработчик показывает питоническую фишку. В своем минутном видео формата YouTube Shorts Indently показывает, как повторить что-либо с помощью спецсимволов > / < / ^
.
#факты
Забавный автоперевод документации REST
"Упдейтшитпропертиесрекуест", "ОбновлениеНамедРангерекуест", "Аддшитрекуест" и прочих неведомых зверей предлагает использовать Google при обращении с API Таблиц. Забавное временное явление можно увидеть в русскоязычной версии документации.
#факты
Конструкторы datetime
Модуль datetime предоставляет классы «Дата» <D>, «Время» <T>, «Временной штамп» <DT> и «Временная дельта» <TD>.<D> = date(year, month, day) # Only accepts valid dates from 1 to 9999 AD.
<T> = time(hour=0, minute=0, second=0) # Also: `microsecond=0, tzinfo=None, fold=0`.
<DT> = datetime(year, month, day, hour=0) # Also: `minute=0, second=0, microsecond=0, …`.
<TD> = timedelta(weeks=0, days=0, hours=0) # Also: `minutes=0, seconds=0, microseconds=0`.
Как получить значение текущего времени в разных форматах?D/DT.today() # Текущая локальная дата (NB! в часовом поясе, где развернута машина)
DT.utcnow() # Текущие дата и время без часового пояса
DT.now(<tzinfo>) # Текущие дата и время с часовым поясом
#факты
Забытые способы указать число знаков после запятой
Помимо привычного символа f, есть еще способы форматировать числа при выводе: e и % (знак процента).{1.23456:10.3f} # '1.235' – до тысячных (три знака)
{1.23456:10.3e} # '1.235e+00' – равно 1.235, то есть умножено на 10 в нулевой степени (на единицу)
{1.23456:10.3%} # '123.456%' – тоже до тысячных, но для процентов
Кстати, у нас на сайте вы можете подписаться только на интересные вам теги и отслеживать самые свежие новости и полезные статьи по этой теме.
Вот, например:
— Веб-разработка: https://tproger.ru/tag/web/
— Нейросети: https://tproger.ru/tag/neural-network/
— И геймдев: https://tproger.ru/tag/gamedev/
А ещё можно подписаться на годноту по конкретному языку:
— Python: https://tproger.ru/tag/python/
— JavaScript: https://tproger.ru/tag/javascript/
— C++: https://tproger.ru/tag/cpp/
Посмотрите все теги и выберите только те, которые интересны вам!
IDE для питонистов с хорошим UI / UX
Составили подборку из 5 хороших IDE для программирования на Python с удобной и понятной средой, которые помогают писать код, а не мешают.
#лучшиепрактики
Автоматическая отправка сообщения в WhatsApp
Наконец отложенные сообщения в WhatsApp! Библиотека PyWhatKit помогает отправить сообщение по времени.import pywhatkit
# Отправить сообщение в 13:30
pywhatkit.sendwhatmsg("+910123456789", "Привет", 13, 30)
Библиотека умеет еще много интересного: от преобразования картинки в ASCII-изображение до отправки мейлов.
#лучшиепрактики
Слияние словарей с double asterisk (**)
Чтобы лаконично и экономично с точки зрения памяти объединить два словаря, используйте оператор двойной звездочки:d1 = {'name': 'Александр', 'age': 25}
d2 = {'name': 'Александр', 'city': 'Санкт-Петербург'}
merged_dict = {**d1, **d2}
>>> {'name': 'Александр', 'age': 25, 'city': 'Санкт-Петербург''}
Топ реальных историй про первую работу: как начиналась карьера в IT у наших читателей
Недавно мы просили читателей Типичного рассказать о том, как они получали первую работу и какие советы дали бы начинающим специалистам, которые сейчас тоже ищут первую работу.
Делимся лучшими реальными историями про первую работу:
— Как таксист в тяжёлой депрессии стал Python-разработчиком
— С завода на завод. Как слесарь стал программистом всего за 8 месяцев
— Как пройти путь от галеры в Новосибирске до релокейта на Филиппины
— Как стать Golang-разработчиком и получить оффер на 100 000 рублей в 20 лет
— Как студент из Красноярска стал фронтенд-разработчиком
#карьера #работа
Почему Python не используется для разработки больших игр
Мы знаем, какими преимуществами обладает этот язык, но почему же его не используют для разработки полноценных игр? Среди недостатков, вытолкнувших ЯП с рынка GameDev, числятся:
- низкая совместимость с игровыми движками и языками программирования;
- нельзя создать собственный игровой движок;
- ограниченное количество игровых библиотек;
- ограниченный функционал для мобильных игр.
#факты
Эффективный способ указывать путь к файлам
С помощью библиотеки pathlib вы можете сократить длину кода, задав переменную «домашний путь» (home):from pathlib import Path
home = Path.home()
file = home / "treasure_map.txt"
file.touch()
print(f"Ваш файл злесь: {file}")
#лучшиепрактики