TGViewer
Channel Public Channel
Zen of Python

Zen of Python

@zen_of_python

Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Subscribers
18.8K
Photos
1.5K
Videos
202
Links
3.7K

Showing posts older than #2473 · Back to latest

Older Posts 20 shown
Post #2471 5.02K
​Как разделить строку по определённому символу

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

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

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

#лучшиепрактики
  • 👍 16
  • 🤯 7
Post #2469 5.15K
​Пять продвинутых фишек 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
Post #2468 5.19K
​Как создать свой модуль

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

#новичкам
  • 👍 6
Post #2466 5.26K
​Кто читает системные аргументы командной строки: 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
Post #2464 5.99K
​Что нового в последней версии Python 3.11: таймер asyncio

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

import asyncio

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

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

#лучшиепрактики
  • 👍 14
Post #2463 5.81K
​Подсчёт числа записей в БД за выбранный период времени

Частой просьбой от хозяев проекта может стать подсчёт записей по дням. Такой 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
  • 👍 9
  • ❤ 1
Post #2462 5.91K
​PEP8: словно и не менялось ничего с прошлой версии

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

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

#PEP
  • 👎 10
  • ❤ 2
Post #2461 5.9K
​От пользователя Excel к разработчику Python

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

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

#карьера
  • 👍 9
Post #2460 6.11K
​Как скачивать видео с 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
Post #2457 5.08K
​Если Windows не видит Python как системную переменную

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

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

#факты
  • 👍 6
  • 🤡 3
  • 🤣 3
  • ❤ 1
  • 💩 1
Post #2456 5.31K
​Плагины Django

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

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

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

#django
  • 👍 15
Post #2455 5.06K
​Кватернион: вы много раз его видели, но не знали названия

Quaternion (кватернион) — это структура данных, которая используется для представления и манипулирования ориентацией в трёхмерном пространстве. Он состоит из четырех компонентов: одного скаляра и трех векторов.

from pyquaternion import Quaternion

my_quaternion = Quaternion(axis=[1, 0, 0], angle=3.14159265)

Кватернионы широко используются в анимации для описания плавных переходов (интерполяция).

#факты
  • 👍 18
Post #2454 5.46K
​Почему не везде есть if __name__ == "__main__"

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

Поэтому эту строку легко встретить при создании проекта на почти любом фреймворке, к примеру, aiogram.

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

#факты
  • 👍 15
  • ❤ 1
Post #2453 5.38K
​requests: вложенные параметры

Возможно, вы сталкивались с ситуацией, кода тестовый HTTP-запрос в Postman работает корректно, а при переходе в requests часть параметров игнорируется. Дело в синтаксисе вложенных параметров. Порой в объект params кладутся многоуровневые объекты.

Пример ниже — вложенные параметры для выгрузки логов конструктора Aimylogic за день:

import requests

payload = {"filters": [
{"key": "MESSAGE_TIME", "type": "DATE_TIME_RANGE",
"from": f"2023-06-18T20:59:59.999Z", "to": f"2023-06-18T20:59:59.999Z"}]}

r = requests.post('https://app.jaicp.com/api/reporter/p/[TOKEN]/messages/filter', params=params)

Несмотря на кажущуюся бессмысленность двойных скобок (квадратные + фигурные), именно в таком виде подаются фильтры «Логи чат-бота за 18 июня 2023». Вероятно, подразумевалось добавление соседей.

#requests
  • 👍 9
  • ❤ 1
  • 🤔 1
  • 💩 1
Post #2452 4.86K
​Как объединить два списка

В Python встроенная функция zip() используется для объединения нескольких элементов в кортежи с соответствующими элементами других объектов. Например, для объединения элементов двух списков можно использовать zip().

Вот пример:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

result = zip(list1, list2)
print(list(result))

Результат выполнения этого кода будет следующий:
[('a', 1), ('b', 2), ('c', 3)]

zip() создает кортежи из соответствующих элементов list1 и list2. Каждый кортеж содержит элементы с одинаковыми индексами.

#факты
  • 👍 11
  • 🤨 4
  • ❤ 1
  • 😐 1
Post #2450 5.26K
​Дешевые хостинги: какие используете вы?

Согласно рейтингу hostinghub.ru, в первую тройку лучших VPS (виртуальных частных серверов) входят:

— timeweb.cloud;
— aesa.net;
— vdsina.ru.

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

#VPS
  • 👍 6
  • 🔥 2
  • 👎 1
Post #2449 5.11K
​Что такое Dython?

Мы продолжаем серию статей, посвященных всяческим производным слова Python, и на сей раз познакомим вас с Dython. Вы узнаете:

— как ускорить инжиниринг фичей в несколько раз;
— как очищать и готовить данные.

#лучшиепрактики
  • 😁 4
  • 😐 2
  • 👍 1
  • 👎 1
  • 🤡 1
Post #2448 5.36K
​Обработку исключений теперь можно сопроводить заметкой

В свежем релизе Python 3.11.4 добавили add_note() в стандартный класс исключений BaseException. Его можно использовать для обогащения контекстной информацией. Добавленные заметки появляются в трассировке по умолчанию.

try:
raise TypeError("unsupported operand")
except Exception as exc:
exc.add_note("Пояснение...")
raise

Невероятно полезно при множестве блоков try-except.

Подробнее о релизе здесь.

#лучшиепрактики
  • 👍 20
  • ❤ 1
Post #2447 4.81K
​Оператор xor

В Python оператор xor (исключающее ИЛИ) обозначается как ^. Он применяется к двум булевым операндам и возвращает True, если только один из них имеет значение True, а остальные — False. Если оба операнда имеют одинаковые значения (True или False), то результатом будет False.

Пример использования оператора xor в Python:

a = True
b = False

result = a ^ b
print(result) # Выводит: True

В этом примере переменная a имеет значение True, а переменная b имеет значение False. Оператор xor применяется к этим операндам, и результатом будет True.

Если оба операнда имеют одинаковые значения, например, оба True или оба False, результат будет False:

c = True
d = True

result = c ^ d
print(result) # Выводит: False

В этом примере оба операнда (c и d) имеют значение True, поэтому результатом будет False.

Таким образом, оператор xor возвращает True, только если только один из операндов имеет значение True, а остальные операнды имеют значение False.

#начинающим
  • 👍 17
  • 👎 4
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →