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

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

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

https://t.me/pythonhub_chat - чат
Download Telegram
❗️Разница в SQLAlchemy и Flask-SQLAlchemy

🔻 SQLAlchemy

SQLAlchemy - это библиотека для работы с базами данных в языке Python. Она предоставляет объектно-реляционный маппер (ORM), который позволяет работать с базой данных, используя объекты и методы, а не прямые SQL-запросы. SQLAlchemy предоставляет широкий набор функций и возможностей для работы с различными СУБД, включая создание таблиц, выполнение запросов и управление транзакциями.

🔻 Flask-SQLAlchemy

Flask-SQLAlchemy - это расширение для фреймворка Flask, которое интегрирует SQLAlchemy в приложения Flask. Оно предоставляет удобный способ настройки и использования SQLAlchemy в проекте на Flask. Flask-SQLAlchemy упрощает создание моделей базы данных, связывание их с таблицами и выполнение запросов. Оно также автоматически управляет соединениями с базой данных и контекстом сеанса.

🆚 Различия между SQLAlchemy и Flask-SQLAlchemy

1. Уровень абстракции: Одно из основных различий между SQLAlchemy и Flask-SQLAlchemy заключается в уровне абстракции. SQLAlchemy предоставляет более низкий уровень абстракции и позволяет более гибко управлять базой данных, в то время как Flask-SQLAlchemy предоставляет более высокий уровень абстракции и упрощает взаимодействие с базой данных для проектов на Flask.

2. Интеграция с Flask: Flask-SQLAlchemy предоставляет дополнительную интеграцию с фреймворком Flask. Оно упрощает создание моделей базы данных и поддерживает автоматическую генерацию таблиц на основе этих моделей. SQLAlchemy, с другой стороны, не имеет прямой интеграции с Flask и требует дополнительной настройки для работы в проекте на Flask.

3. Управление соединениями и контекстом сеанса: Flask-SQLAlchemy автоматически управляет соединениями с базой данных и контекстом сеанса, что упрощает работу с базой данных в приложении Flask. SQLAlchemy требует явного управления соединениями и контекстом сеанса.
👍4
❗️ Главные отличия Python2 от Python3


🔻 Поддержка

Одним из крупных отличий Python2 и Python3 является поддержка. Python2 перестал получать активные обновления и исправления ошибок с 2020 года, в то время как Python3 активно разрабатывается и поддерживается сообществом.

🔻 Синтаксис и функциональность

Еще одно важное отличие между Python2 и Python3 - это изменения в синтаксисе и функциональности. В Python3 были внесены некоторые изменения, чтобы сделать язык более последовательным и интуитивно понятным. Некоторые из этих изменений включают:

- Использование функции print() вместо оператора print. В Python2 можно было использовать print без скобок, но в Python3 требуется использование скобок, чтобы вызвать функцию print().
- Python3 включает новые возможности, такие как асинхронное программирование, улучшенная обработка исключений и расширенная поддержка для работы с байтами.

🔻 Библиотеки и совместимость

Третье важное отличие между Python2 и Python3 заключается в библиотеках и совместимости.
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Создаем объект класса Person, куда передаем пустое имя. Просто пустые кавычки. Далее мы выводим это имя - в ответ пустота. Ну а далее через сеттер устанавливаем значение свойству name. У нас там внутри есть проверка на пустоту, однако мы уже передаем имя "Петр Петров". Все проходит успешно, ну и далее мы это имя выводим.
👍2
⁉️ Зачем нужен файл __init__ в папке Python проекта?


🔻Организация модулей

Один из основных назначений файла __init__.py - это сигнализировать Python, что папка является модулем. В этом файле можно определить переменные, функции или классы, которые будут доступны извне. Это позволяет организовать код внутри папки и создавать логические блоки функциональности. Благодаря файлу __init__.py вы можете импортировать модули из папки, используя точечную нотацию, например: "import folder.module".

🔻 Инициализация пакетов

В Python папки с файлами __init__.pyназываются пакетами. Файл __init__.py в пакете выполняет роль инициализации пакета. Это означает, что код в этом файле будет выполнен при импорте пакета. Это может быть полезно, когда вам нужно выполнить какую-то предварительную настройку или импортировать дополнительные модули, необходимые для работы пакета. Такой подход позволяет обеспечить последовательность инициализации и избежать ошибок при использовании пакета.
👍4
❗️ Оператор in в Python


Оператор in в Python используется для проверки вхождения элемента в последовательность. Эта последовательность может быть строкой, списком, кортежем или даже словарем. Синтаксис оператора in выглядит следующим образом: элемент in последовательность. Оператор in возвращает логическое значение True, если элемент присутствует в последовательности, и False, если элемент отсутствует.

Например, давайте рассмотрим следующий пример:

fruits = ['apple', 'banana', 'orange']
if 'apple' in fruits:
print("Я люблю яблоки!")


В этом примере мы создали список фруктов и проверяем, присутствует ли в нем элемент 'apple'. Если элемент 'apple' присутствует, то выводится сообщение "Я люблю яблоки!".

text = "Python is a powerful programming language"
if "Python" in text:
print("Python найден!")


В этом примере мы проверяем, содержит ли строка "Python is a powerful programming language" подстроку "Python". Если подстрока "Python" присутствует, то выводится сообщение "Python найден!".
👍3
💁‍♂️ Задача уровень 6

Ваша задача - отсортировать заданную строку. Каждое слово в строке будет содержать одно число. Это число - позиция, которую должно занимать слово в результате.

Примечание: Цифры могут быть от 1 до 9. Таким образом, 1 будет первым словом (а не 0).

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

Пример 🤯

"is2 Thi1s T4est 3a"  -->  "Thi1s is2 3a T4est"
"4of Fo1r pe6ople g3ood th5e the2" --> "Fo1r the2 g3ood 4of th5e pe6ople"
"" --> ""

link: https://www.codewars.com/kata/55c45be3b2079eccff00010f/python
👍2
🔔Aiogram 3 нужно учить, если пишешь ботов в телеграм!

📹 Разобрались, как работать с фильтрами в Aiogram 3.x 📹
🔥 Смотрите, оценивайте, используйте 🔥

p.s. совсем забыл про отложенный выпуск видео :/
Поддержка и комментарии приветствуются☺️

https://www.youtube.com/watch?v=ZvMIdY0JjJc
👍3
Что выдаст код выше?
Anonymous Quiz
35%
True
43%
False
9%
Error
4%
None
9%
Не знаю
👍3
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Приводя к множеству (set) список или кортеж, мы убираем все повторения в структуре данных, а так же автоматически сортируем это множество. Таким образом, нам просто стоит убедиться, что в обоих структурах присутствуют одни и те же элементы. 1 2 3 4 5 6 есть в каждом из, так что равенство после преобразования будет верным —> True
👍3
Python Hub - сборище Питонистов
💁‍♂️ Задача уровень 6 Ваша задача - отсортировать заданную строку. Каждое слово в строке будет содержать одно число. Это число - позиция, которую должно занимать слово в результате. Примечание: Цифры могут быть от 1 до 9. Таким образом, 1 будет первым словом…
Было предложено решение от одного из наших хабовцев

s = "is2 Thi1s T4est 3a"

words = s.split()

import re

d = {}

for word in words:
num = int(re.findall(r'\d+', word)[-1])
d[num] = word

# {2: 'is2', 1: 'Thi1s', 4: 'T4est', 3: '3a'}

sorted_pairs = sorted(d.items())

result_list = []

for pair in sorted_pairs:
result_list.append(pair[1])

o = ' '.join(result_list)

print(o)

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

Думаю, кстати, стоит поговорить про регулярные выражения чуть позже.

А вот еще вариант решения, только он уже без регулярок

def order(sentence):
if sentence == "":
return ""
final = ["0"] * 9
sentence = sentence.split()
for i in sentence:
for j in range(1, 10):
if str(j) in i:
final[j - 1] = i
for i in range(final.count("0")):
final.remove("0")

return " ".join(final)


print(order('Thi1s is2 3a T4est'))


Тут логика такая, что мы сразу создаем массив из 9 элементов, куда заносим сначала просто, например, 0. Ну а дальше, мы проверяем, какое число находится в слове, после чего подставляем его на нужную позицию. Например , нашли is2 —> подставили на 2-ую позицию по индексу 1.
Ну а в конце не забываем убрать все лишние оставшиеся нули и соединить все join'ом.

Какой вариант вам понятнее?
🌭 - 1-ый
🍌 - 2-ой
🌭4👍2
❗️Что такое регулярные выражения в Python?

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

🔻 Примеры использования регулярных выражений

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

Например, вы можете использовать регулярное выражение для поиска всех email-адресов в тексте. С помощью метода findall() из модуля re вы сможете получить все совпадения с заданным шаблоном.

import re

text = "Это мой email: example@example.com"
pattern = r"\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"

emails = re.findall(pattern, text)
print(emails) # Output: ['example@example.com']


Ссылка на доку: https://docs.python.org/3/library/re.html
👍2
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Есть пустой словарь d. Далее мы бежим циклом по числам от 0 до 9 и заносим эти числа в наш словарь. В ключ мы заносим сами числа 0 - 9, а в значение каждому ключу прибавляем +1 —> 1-10.

Далее у нас блок try-except, который может отлавливать ошибки. Когда мы пытаемся обратиться по ключу [-1], то вылетает ошибка —> мы не в списке!! мы в словаре! у нас есть ключи, состоящие из чисел 0 - 9, какой тут -1??

Ошибка ловится в except —> выводится значение по ключу 4 —> а это было 4+1 —> 5.

Ответ: 5
👍4
❗️ Что за библиотека Werkzeug в Python?


Werkzeug предлагает множество полезных функций для разработки веб-приложений. Одной из главных особенностей этой библиотеки является ее простота использования. Werkzeug предоставляет простой API для обработки HTTP-запросов и ответов, а также для работы с URL-адресами. Она также поддерживает различные протоколы, такие как WSGI (Web Server Gateway Interface), что делает ее идеальным выбором для создания веб-приложений в Python.

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

🔻Преимущества:

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

Еще одним преимуществом Werkzeug является его интеграция с популярными фреймворками веб-разработки, такими как Flask и Django.
👍2