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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Плагины Django

Мы рады представить вам анонс статьи «10 самых частоиспользуемых плагинов Django», которые расширяют возможности фреймворка для разработки веб-приложений.

Помимо общеизвестных Django REST, в статье вы встретите и NoSQL-решения для хранения данных и адаптацию pytest.

Какие еще полезные плагины вы знаете? Поделитесь в комментариях.

#django
👍15
Если Windows не видит Python как системную переменную

Если вы проследовали стандартной процедуре добавления Python в средовые переменные (как в этой инструкции), а программа все еще не может «схватить» установленный ЯП, то вы можете:

— перезагрузить консоль;
— перезагрузить систему;
— переустановить языковой пакет, установив флажок («Добавить в средовые переменные»);
— очистить регистр (например, с CCleaner).

#факты
👍6🤡3🤣31💩1
Как скачивать видео с YouTube с помощью Python

Если вам нужно поставить на поток скачивание видео, то зациклить список ссылок — оптимальное решение. С остальным поможет библиотека putybe: opensouce-инструмент, позволяющий скачать файл за четыре строки кода:

from pytube import YouTube

YouTube('https://youtu.be/2lAe1cqCOXo').streams.first().download()
yt = YouTube('http://youtube.com/watch?v=2lAe1cqCOXo')
yt.streams

#лучшиепрактики
👍12
От пользователя Excel к разработчику Python

В замечательном англоязычном подкасте PyBites авторы побеседовали с испанцем Хуаном Гонсалесом и узнали:

— как преодолеть «паралич воли» при обучении на видеоуроках;
— как справиться с синдромом самозванца;
— о роли хорошего комьюнити в поддержании мотивации.

#карьера
👍9
PEP8: словно и не менялось ничего с прошлой версии

В своей статье Егор Егоров доступным языком обозревает обновления в стандарте PEP версии 8. Вы узнаете, какую максимальную длину строки рекомендуют создатели, для каких объектов ЯП при именовании использовать строчные, а для каких — заглавные буквы. Узнаете, для чего придумали линтеры.

А вы бы добавили какой-нибудь принцип? Поделитесь в комментариях.

#PEP
👎102
Подсчёт числа записей в БД за выбранный период времени

Частой просьбой от хозяев проекта может стать подсчёт записей по дням. Такой SQL-запрос можно встроить в код Python, который запускается по расписанию и автоматизирует подсчёт по дням.

SELECT
TIMESTAMP_TRUNC(Timestamp, day) Timestamp,
COUNT(1) `Count`
FROM table
GROUP BY 1
ORDER BY Timestamp

TIMESTAMP_TRUNC() обрежет столбец даты и времени до выбранного диапазона, в нашем случае, дня. COUNT(1) создаст служебный столбец Count и выставит все значения столбца, равными единице. Затем мы сгруппируем все ряды по этой единице, тем самым произведя подсчёт числа рядов.

В результате мы получим вот такой полезный вывод данных ниже:

#SQL
👍91
Что нового в последней версии Python 3.11: таймер asyncio

Добавлен timeout() — утилита для установки времени ожидания для асинхронных операций. Рекомендуется вместо непосредственного использования wait_for().

import asyncio

# Новое в Python 3.11.
async with asyncio.timeout(delay):
await long_running_task()

А в каких ситуациях вам пригождался asyncio? Нужен ли был ему таймер обратного отсчета? Поделитесь в комментариях.

#лучшиепрактики
👍14
С кем из звезд Python вы бы хотели познакомиться поближе? (Мы планируем пригласить)
Anonymous Poll
87%
Не знаю, у меня лапки
13%
Есть один человечек (напишите в комментариях)
🤡4
Кто читает системные аргументы командной строки: argparse

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

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number", type=int)
args = parser.parse_args()
print(args.square**2)

>>> 16

#лучшиепрактики
👍6👀2
Как создать свой модуль

В 11-минутном ролике ютьюбер Cidprim показывает на очень простом примере, как создать модуль и импортировать его в существующий код.

#новичкам
👍6
Пять продвинутых фишек Django

В своей статье Steven Pate описывает пять advanced-фишек фреймворка, таких как объекты Q для комбинирования запросов типа ИЛИ + И:

TickerPrice.objects.filter(
models.Q(price__gt=1000),
(models.Q(close_date=today) | models.Q(close_date=yesterday)),
)

#django
👍10👎2
Как разделить строку по определённому символу

В этом вам поможет split() с ее позиционным аргументом sep (разделителем):

txt = "apple#banana#cherry#orange"
x = txt.split("#")
print(x)

>>> ['apple', 'banana', 'cherry', 'orange']

#лучшиепрактики
👍16🤯7
Media is too big
VIEW IN TELEGRAM
CodingGame поддерживает Python

codingame.com — живенький эмулятор игр разных жанров для новичков программирования, включая Python. Там студенту в игровой форме предлагают осваивать базовую терминологию и навыки решения задач. Хороший способ развеяться и при этом продолжить учиться, привыкая к процессу разработки.

А в какие игровые приложения вы играли, когда учили Python? Поделитесь в комментариях.

#обучение
👍4
PyCharm: управление пакетами для нескольких проектов

Окно инструментов «Пакеты Python» теперь поддерживает зависимые проекты. Выбрав проект на дополнительной панели слева от окна инструмента, вы можете устанавливать и удалять утилиты, а также управлять их версиями.

#pycharm
3👍2
Codeium: навсегда бесплатная AI-система автодополнения кода

Один из подписчиков Zen of Python посоветовал это расширение, и вот что оказалось в нем замечательного: заявлено, что расширение может дебажить код на Python. Тем временем её соперница chatGPT генерирует код, а компилируемость ее не особо волнует.

На видео расширение помогает писать регулярные выражения.

А у вас есть опыт использования таких ассистентов? Кто из таких расширений справился с этой типичной ошибкой GPT?

#лучшиепрактики
👍10🔥4
PyCharm и рефакторинг объектов

В последнем обновлении IDE вместо того, чтобы вводить новое имя во всплывающем диалоговом окне, теперь вы можете изменить его через встроенную форму:

А как вы рефакторите свои объекты? Поделитесь в комментариях.

#pycharm
🤡4
Cam-Hackers: общедоступная база камер видеонаблюдения

Используя скрипт CamHackers ниже, вы можете получить список хакнутых / общедоступных камерам из разных стран. В списке выводятся IP-адрес и порт для подключения.

$ git clone https://github.com/AngelSecurityTeam/Cam-Hackers

$ cd Cam-Hackers
$ pip install -r requirements.txt

Использование:
$ python3 cam-hackers.py

Скрипт вернет список из стран, останется лишь выбрать нужную вам.

#факты
👍9👎5🤯2❤‍🔥1
Как проитерировать разномастный список «по атомам»

Если у нас есть список, содержащий объекты разного типа — строки, списки, словари, то превратить этот набор в перечень «неделимых» элементов — букв и чисел, поможет модуль chain библиотеки itertools:

from itertools import chain

chained = chain('ab', [33])
next(chained) # a
next(chained) # b
next(chained) # 33

Какие еще фишки itertools вы знаете? Поделитесь в комментариях.

#лучшиепрактики
👍163
Что делать, если код на Python «замораживается»

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

А какие еще методы разморозки вы применяете? Поделитесь в комментариях.

Анонс

#карьера
👍6🥰1
Dino Game своими руками

Многие из нас играли в бегающего динозаврика в Google Chrome, когда сети нет.

В своей статье Adones Evangelista рассказал, как написать точно такую же мини-игру на Python, используя библиотеки pygame и random.

#pygame #random
👍12👎2💩2