Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Python Hub - сборище Питонистов
Что выведет код выше?
Разбор!

Генерируемые пользователем исключения перехватываются тем же способом, что и исключения, которые генерирует интерпретатор Python. Здесь намеренно инициируется встроенное исключение IndexError. Так как в блоке try было вызвано исключение, блок else выполняться не будет. Поэтому будет выведена только строка 'Получено исключение'.
👍21
📚 Библиотека aiosqlite с примерами на Python

Современные приложения требуют высокой производительности и асинхронной обработки данных. Одним из инструментов, который помогает разработчикам Python достигать этих целей, является библиотека aiosqlite. Она позволяет выполнять асинхронные операции с базой данных SQLite, что значительно улучшает отклик приложения и его масштабируемость.

🛠 Установка и начальная настройка

Первый шаг в использовании aiosqlite — это установка библиотеки. Это можно сделать с помощью pip:

pip install aiosqlite


После установки, можно приступить к настройке подключения к базе данных. Рассмотрим простой пример:

import aiosqlite
import asyncio

async def main():
async with aiosqlite.connect('example.db') as db:
await db.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)')
await db.commit()

asyncio.run(main())


В этом примере мы создаем подключение к базе данных example.db и создаем таблицу users, если она еще не существует.

🔄 Выполнение асинхронных запросов

Одним из ключевых преимуществ aiosqlite является возможность выполнения асинхронных запросов. Рассмотрим пример добавления и получения данных из таблицы:

async def add_user(db, user_name):
await db.execute('INSERT INTO users (name) VALUES (?)', (user_name,))
await db.commit()

async def get_users(db):
async with db.execute('SELECT * FROM users') as cursor:
async for row in cursor:
print(row)

async def main():
async with aiosqlite.connect('example.db') as db:
await add_user(db, 'Alice')
await add_user(db, 'Bob')
await get_users(db)

asyncio.run(main())


В этом примере мы добавляем двух пользователей в таблицу users и выводим всех пользователей на экран. Обратите внимание, что все операции с базой данных выполняются асинхронно.

⚠️ Обработка ошибок и управление транзакциями

Любое взаимодействие с базой данных может сопровождаться ошибками, и важно уметь правильно их обрабатывать. Кроме того, aiosqlite поддерживает работу с транзакциями:

async def main():
async with aiosqlite.connect('example.db') as db:
try:
async with db.execute('BEGIN'):
await db.execute('INSERT INTO users (name) VALUES (?)', ('Charlie',))
# Принудительно вызовем ошибку
raise Exception("Something went wrong")
await db.commit()
except Exception as e:
await db.rollback()
print(f"Transaction failed: {e}")

asyncio.run(main())


В этом примере мы демонстрируем использование транзакций и обработку ошибок. Если в процессе выполнения транзакции возникает ошибка, изменения автоматически откатываются.
👍4
🚀 Давайте поможем всем, кто это читает!

💻 Подскажите, в каких чатах можно найти работу, связанную с Python'ом?
Большая часть аудитории этого канала занимается разработкой ботов. Может, есть чатики для вакансий или заказов на разработку телеграм-ботов?

🤔 Если таких чатов нет, как думаете, было бы актуально что-то подобное создать?

💡 У меня появилась идея — создать сайтик/сервис со всеми стажировками в IT! Пользовались бы?

P.S. Поделитесь, где искать стажировки. Вдруг я какой-то крутой сервис пропустил 😅

Гоу вместе найдем полезные ресурсы и поддержим друг друга! 🌟
👍52🤯1
Что выдаст код выше?
Anonymous Quiz
43%
True
32%
False
5%
None
10%
Error
11%
Не знаю
👍4
Python Hub - сборище Питонистов
Photo
Разбор 🧐

Весь нюанс в том, что var - список с каким-то содержимым из множества элементов
А var2 - список, который содержит в себе только 1 элемент —> var (как бы ссылаясь на него)
👍31
Библиотека Pyxel 🎮

Pyxel — это библиотека для создания ретро-игр на языке программирования Python. Она идеально подходит для разработчиков, которые хотят погрузиться в мир 8-битных игр, создавая собственные проекты с минимальными усилиями. 🕹

Простота использования 🧩

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

Встроенные инструменты 🎨🎵

Pyxel поставляется с набором встроенных инструментов, которые облегчают разработку игр. Среди них: редактор спрайтов, редактор звуков и редактор карт.

Кроссплатформенность 🌍

Ещё одно важное преимущество Pyxel — это её кроссплатформенность. Библиотека поддерживает Windows, macOS и Linux, что позволяет разрабатывать игры на любой из этих платформ. 💻


LINK: https://github.com/kitao/pyxel
👍4❤‍🔥1😱1
📚 Библиотека Loguru на Python

🔍 Введение

В мире Python программирования, логирование играет важную роль в отслеживании работы приложений и выявлении ошибок. Одним из самых удобных и мощных инструментов для этой задачи является библиотека Loguru. В этом посте мы рассмотрим основные преимущества и возможности Loguru, которые делают его отличным выбором для логирования в Python.

🚀 Простота использования

Одним из основных преимуществ Loguru является его простота использования. В отличие от стандартной библиотеки logging, которая может показаться сложной и громоздкой, Loguru предлагает простой и интуитивно понятный интерфейс. Для начала работы достаточно импортировать библиотеку и начать логирование с помощью одной строки кода:

from loguru import logger

logger.info("Привет, Loguru!")


Это позволяет значительно сократить время на настройку и сразу приступить к логированию.

⚙️ Гибкость и мощность

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

logger.add("debug.log", level="DEBUG")
logger.add("error.log", level="ERROR")

logger.debug("Это сообщение для отладки")
logger.error("Это сообщение об ошибке")


Или же отправлять их на удалённый сервер для дальнейшего анализа. Библиотека также поддерживает асинхронное логирование, что делает её отличным выбором для высоконагруженных приложений.

🔧 Встроенные дополнительные функции

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

logger.add("file_{time}.log", rotation="500 MB")

logger.info("Это сообщение будет записано в новый файл при достижении лимита в 500 MB")


Эти и другие функции делают Loguru мощным инструментом для профессионального логирования.

———- https://github.com/Delgan/loguru —————
7❤‍🔥1👍1
Channel name was changed to «Python Hub»
🕰 Библиотека delorean для работы со временем и датами в Python

Одним из главных преимуществ библиотеки delorean является её простота использования. Она предоставляет разработчикам возможность легко создавать, манипулировать и форматировать временные объекты.

Пример кода

import delorean

# Создание объекта текущего времени
now = delorean.now()
print("Текущее время:", now)

# Преобразование времени в строку в формате ISO
iso_format = now.datetime.isoformat()
print("ISO формат:", iso_format)


🌐 Работа с временными зонами

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

Пример кода

import delorean

# Создание объекта времени в определённой временной зоне
dt = delorean.parse("2023-10-10 10:00:00", timezone="UTC")

# Преобразование времени в другую временную зону
local_dt = dt.shift("US/Eastern")
print("Время в восточной временной зоне США:", local_dt)


Временные интервалы и манипуляции

Еще одной важной функцией delorean является работа с временными интервалами. Библиотека позволяет легко вычислять разницу между двумя временными точками, а также добавлять или вычитать временные интервалы. Это делает её полезной для задач, связанных с планированием, аналитикой и многими другими областями, где важна точная работа с временными данными.

### Пример кода

import delorean

# Создание двух объектов времени
start = delorean.parse("2023-10-10 10:00:00")
end = delorean.parse("2023-10-10 12:30:00")

# Вычисление разницы между двумя временными точками
diff = end - start
print("Разница во времени:", diff)

# Добавление временного интервала
new_time = start + delorean.timedelta(hours=2)
print("Новое время:", new_time)
4❤‍🔥2👍2🤯1
Библиотека pywebview в Python 🪐


Установка pywebview

Первым шагом к использованию pywebview является его установка. К счастью, это очень просто. Достаточно выполнить следующую команду:

pip install pywebview


Теперь у нас есть все необходимое, чтобы начать работу с pywebview. 📦

Создание простого окна

После установки pywebview, давайте создадим простое окно, которое будет отображать наш веб-контент. Вот базовый пример:

import webview

# Создаем окно с URL
webview.create_window('Пример pywebview', '<https://example.com>')

# Запускаем приложение
webview.start()


Этот код создаст окно с названием "Пример pywebview" и загрузит страницу по указанному URL. Это отличный способ быстро превратить ваше веб-приложение в настольное приложение. 🌐

Больше примеров и документации тут:
https://github.com/r0x0r/pywebview
👍42
Что выдаст код выше?
Anonymous Quiz
47%
True
19%
False
5%
None
7%
Error
18%
123456
4%
Не знаю
👍6
Python Hub - сборище Питонистов
Photo
Разбор 😃

Оператор «is» проверяет идентичность объектов. Таким образом мы сравниваем идентичность переменной c, которая указывает на ячейку памяти и некого текста
👍53