Zen of Python
20.1K subscribers
1.22K photos
162 videos
32 files
3.17K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Почему Python не используется для разработки больших игр

Мы знаем, какими преимуществами обладает этот язык, но почему же его не используют для разработки полноценных игр? Среди недостатков, вытолкнувших ЯП с рынка GameDev, числятся:

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

#факты
💩15🤔4
SQL_Pandas.pdf
515.4 KB
Шпаргалка SQL → Pandas

— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.

#обучение
👍10
Топ реальных историй про первую работу: как начиналась карьера в IT у наших читателей

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

Делимся лучшими реальными историями про первую работу:
Как таксист в тяжёлой депрессии стал Python-разработчиком

С завода на завод. Как слесарь стал программистом всего за 8 месяцев

Как пройти путь от галеры в Новосибирске до релокейта на Филиппины

Как стать Golang-разработчиком и получить оффер на 100 000 рублей в 20 лет

Как студент из Красноярска стал фронтенд-разработчиком

#карьера #работа
🔥6💩4👍1
Поиск в Google на Python

Библиотека googlesearch-python частично избавляет от необходимости создавать сложных пауков, имитирующих действия живого человека на selenium и позволяет тонко настраивать результаты поиска: количество, язык, подробность ответа (заголовок, URL, описание).

pip install googlesearch-python

from googlesearch import search
search("Поисковый запрос", advanced=True)

>>>
# - title
# - url
# - description

#лучшиепрактики
5👍1
Слияние словарей с double asterisk (**)

Чтобы лаконично и экономично с точки зрения памяти объединить два словаря, используйте оператор двойной звездочки:

d1 = {'name': 'Александр', 'age': 25}
d2 = {'name': 'Александр', 'city': 'Санкт-Петербург'}
merged_dict = {**d1, **d2}

>>> {'name': 'Александр', 'age': 25, 'city': 'Санкт-Петербург''}

#лучшиепрактики
👍29💩5
Railway.app: сервер с бесплатным пробным тарифом

Чтобы не мучаться с серверами и портами, а также деплоить приложения из GitHub-репозитория и прочих источников можно на railway.app. Основное преимущество — выделенные бесплатные, пусть и скромные ресурсы. В trial-версии вам предоставят:

— 512 MB RAM;
— 1 Гб места;
— 5 демо-долларов или 500 часов работы;
— Поддержка на уровне Discord-чата.

#VPS
👍8👎1
Автоматическая отправка сообщения в WhatsApp

Наконец отложенные сообщения в WhatsApp! Библиотека PyWhatKit помогает отправить сообщение по времени.

import pywhatkit

# Отправить сообщение в 13:30
pywhatkit.sendwhatmsg("+910123456789", "Привет", 13, 30)

Библиотека умеет еще много интересного: от преобразования картинки в ASCII-изображение до отправки мейлов.

#лучшиепрактики
👍192🤡2
IDE для питонистов с хорошим UI / UX

Составили подборку из 5 хороших IDE для программирования на Python с удобной и понятной средой, которые помогают писать код, а не мешают.

#лучшиепрактики
👎7👍2🤔21
Как получить расширенную информацию о картинке

Увидеть подробные метаданные изображения (с появлением цифровой фотографии это назвали 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)

#лучшиепрактики
👍9
​Кстати, у нас на сайте вы можете подписаться только на интересные вам теги и отслеживать самые свежие новости и полезные статьи по этой теме.

Вот, например:
— Веб-разработка: 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/

Посмотрите все теги и выберите только те, которые интересны вам!
👍51💩1
Забытые способы указать число знаков после запятой

Помимо привычного символа f, есть еще способы форматировать числа при выводе: e и % (знак процента).

{1.23456:10.3f} # '1.235' – до тысячных (три знака)
{1.23456:10.3e} # '1.235e+00' – равно 1.235, то есть умножено на 10 в нулевой степени (на единицу)
{1.23456:10.3%} # '123.456%' – тоже до тысячных, но для процентов
5👍1
itertools.compress: удобный способ фильтрации данных

В своем уроке UProger описывает, как фильтровать первый список leaders на основе вспомогательного списка selector.

#лучшиепрактики
👍8
Конструкторы 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>) # Текущие дата и время с часовым поясом

#факты
👍5
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)

#факты
👍122
Забавный автоперевод документации REST

"Упдейтшитпропертиесрекуест", "ОбновлениеНамедРангерекуест", "Аддшитрекуест" и прочих неведомых зверей предлагает использовать Google при обращении с API Таблиц. Забавное временное явление можно увидеть в русскоязычной версии документации.

#факты
😁12👍2
Как скачивать посты 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)

#лучшиепрактики
👍14🤔4👎32
Виртуальное окружение: шпаргалка

#virtualenv
👎4
Python для Ad hoc аналитики на BigQuery

Рассказали в статье, как создавать запросы с помощью BigQuery API (библиотеки, упрощающей обращение с хранилищем), как записывать и читать данные.

#BigQuery
Как заставить функцию print() «окружить» слово повторяющимися символами

Вечно можно смотреть на три вещи: огонь, воду, и как очередной разработчик показывает питоническую фишку. В своем минутном видео формата YouTube Shorts Indently показывает, как повторить что-либо с помощью спецсимволов > / < / ^.

#факты
🔥14👍1
Топ самых полезных магических команд для завсегдатаев Colab

Составили подборку из девяти команд для Google Colab / Jupyter Notebook и показали, как они работают на примерах, а также дополнили фишечками.

#ipython #pythonMagic
5
Blurfaces: обеспечиваем конфиденциальность людей

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

git clone [email protected]:raviksharma/blurfaces.git

python3 blur_faces.py friends.mp4 --mode allexcept --model cnn --censor-type facemasking --in-face-file media/Ross_Geller.jpg

#blurfaces
7👌2👍1