Как и в любом другом языке программирования, конструкторы в Python предназначены для инициализации новых объектов. Неправильное использование конструкторов может привести к различным проблемам в программе.
В этой статье, вы узнаете об этом подробнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Если вы создаете свои классы, вы можете сделать их интуитивно понятными, переопределяя стандартные операторы. Это позволяет работать с вашими объектами, как с базовыми типами, улучшая читаемость и удобство использования кода.
Создание вектора с поддержкой арифметических операций:
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __sub__(self, other):
return Vector(self.x - other.x, self.y - other.y)
def __mul__(self, scalar):
return Vector(self.x * scalar, self.y * scalar)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
# Пример использования
v1 = Vector(2, 3)
v2 = Vector(1, 4)
print(v1 + v2) # Vector(3, 7)
print(v1 - v2) # Vector(1, -1)
print(v1 * 3) # Vector(6, 9)
Переопределение операторов в Python улучшает читаемость кода, позволяет кастомизировать их поведение для объектов вашего класса и легко расширять функционал, добавляя поддержку новых операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍4
Если вы хотите быстро освежить свои знания Python или только начинаете знакомиться с этим языком, то обязательно обратите внимание на эту шпаргалку.
Автор включил синтаксис для каждой концепции Python от начального до продвинутого уровня.
— Базовые конструкции: переменные, типы данных, операторы, условные конструкции и циклы.
— Стандартная библиотека: полезные функции для работы с файлами, коллекциями и многим другим.
— Продвинутые темы: декораторы, генераторы, обработка исключений и многое другое.
— Советы по оптимизации: практические рекомендации для написания чистого и быстрого кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1
Media is too big
VIEW IN TELEGRAM
Этот урок посвящен созданию и развертыванию приложений на FastAPI. Он охватывает основные аспекты, начиная с использования FastAPI для разработки веб-приложений и API, и заканчивая интеграцией с базами данных.
Вы научитесь писать простейшие приложения, применять Pydantic для валидации данных, работать с базами данных через паттерн репозиторий, а также использовать роутеры для организации кода. Кроме того, будет рассмотрен процесс контейнеризации приложения с помощью Docker и его развертывание на облачных серверах.
Урок предоставляет всесторонний подход к созданию производительных и современных веб-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥4
Данная библиотека позволяет легко находить и определять даты в массиве данных. Работает с разными форматами записи: и строгими, и «человекопонятными».
Dateparser сможет найти дату и формата «25.06.1999», и формата «вчера» или «месяц назад». В основном библиотека используется при парсинге данных.
>>> import dateparser
>>> dateparser.parse('Fri, 12 Dec 2014 10:55:50')
datetime.datetime(2014, 12, 12, 10, 55, 50)
>>> dateparser.parse('1991-05-17')
datetime.datetime(1991, 5, 17, 0, 0)
>>> dateparser.parse('In two months') # today is 1st Aug 2020
datetime.datetime(2020, 10, 1, 11, 12, 27, 764201)
>>> dateparser.parse('1484823450') # timestamp
datetime.datetime(2017, 1, 19, 10, 57, 30)
>>> dateparser.parse('January 12, 2012 10:00 PM EST')
datetime.datetime(2012, 1, 12, 22, 0, tzinfo=<StaticTzInfo 'EST'>)
pip install dateparser
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
namedtuple — это класс, который позволяет создавать кортежи с именованными полями. Он является частью модуля collections и позволяет обращаться к элементам кортежа по имени, а не по индексу.Вот небольшой пример:
from collections import namedtuple
# Создание типа данных Person
Person = namedtuple('Person', ['name', 'age'])
# Создание экземпляра
person1 = Person(name="Alice", age=30)
# Доступ к полям через имя
print(person1.name) # Output: Alice
print(person1.age) # Output: 30
Как и обычные кортежи,
namedtuple является неизменяемым (immutable). Это значит, что после создания объекта его поля нельзя будет изменить. namedtuple использует меньше памяти, так как не хранит отдельные словари для каждого объекта.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2🔥2💘1
В этой подборке вы найдете готовые задачи и их решения, которые помогут вам освежить знания перед важной встречей с работодателем:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
В этом видео мы познакомимся с концепцией в ООП языка Python известной как композиция.
Автор на практических примерах покажет и расскажет, как ее использовать, где и в каких случаях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
В данном репозитории собрано множество гайдов с готовым кодом по разным направлениям разработки. Отличный вариант найти что-то интересное для себя и попрактиковаться в разработке.
— Этичный хакинг: разработка WiFi сканера, написание кейлоггера, взлом запароленных Zip-архивов и еще много всего интересного
— Машинное обучение: обработка естественного языка, компьютерное зрение и многое другое
— Веб-парсинг
— Использование стандартных библиотек
— Использование API
— Базы данных
— Работа с мультимедиа
— Веб разработка
— Разработка приложений с GUI
— Разработка игр
В общем, однозначно стоит заглянуть и попробовать что-то реализовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
Библиотека httpx представляет собой актуальный, гибкий и быстрый HTTP-клиент для Python. С ее помощью вы можете реализовать HTTP-запросы с поддержкой различных протоколов и методов, а также управлять асинхронными запросами.
import httpx
async def main():
async with httpx.AsyncClient() as client:
response = await client.get('https://api.github.com/repos/encode/httpx')
print('Response:', response.status_code)
print('Content:', response.text)
# Запуск асинхронной функции
httpx.run(main())
pip install httpx
Также,
httpx можно использовать прямо в терминале как CLI-утилиту. Для этого необходимо выполнить установку следующим образом:pip install 'httpx[cli]'
Чтобы узнать все доступные опции, выполните команду: httpx help
Ну и если было полезно, ставь🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Все очень просто, если использовать библиотеку gTTS (Google Text-to-Speech). Это один из самых легких способов преобразовать текст в речь.
pip install gTTS
from gtts import gTTS
import os
# Текст для преобразования
text = "Привет, это текст, который я превращу в речь."
# Создаем объект TTS
tts = gTTS(text=text, lang='ru')
# Сохраняем файл с речью
tts.save("output.mp3")
# Воспроизводим файл
os.system("start output.mp3") # Для Windows
1. gTTS принимает текст и язык (в данном примере — русский), и преобразует его в аудио.
2. С помощью метода
save() можно сохранить аудиофайл, а os.system() — воспроизвести его.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
В современном мире программирования создание графических приложений стало доступным даже для начинающих разработчиков. Одним из самых популярных инструментов для создания GUI-приложений на языке Python является библиотека Tkinter.
В этой статье мы рассмотрим основы работы с Tkinter и создадим простое приложение шаг за шагом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3❤🔥1
🧪 Почему важно писать тесты для Python-кода и как начать
Написание тестов — это страховка для твоего кода. Они позволяют убедиться, что всё работает правильно и новые изменения ничего не ломают. В этом посте мы рассмотрим самый базовый пример написания тестов с помощью библиотеки PyTest.
💬 Зачем нужны тесты?
— Легче находить баги.
— Спокойнее рефакторить код.
— Если тесты написаны хорошо, они документируют поведение программы.
⚙️ Простой пример
1. Для начала установим библиотеку pytest:
2. Допустим, у нас есть такой простой код:
3. Напишем тесты для него. Создадим файл
4. Запускаем тесты:
В результате, если все написано правильно, то мы увидим зеленые тесты✅
🐍 Ghostly Python | #гайды
Написание тестов — это страховка для твоего кода. Они позволяют убедиться, что всё работает правильно и новые изменения ничего не ломают. В этом посте мы рассмотрим самый базовый пример написания тестов с помощью библиотеки PyTest.
— Легче находить баги.
— Спокойнее рефакторить код.
— Если тесты написаны хорошо, они документируют поведение программы.
1. Для начала установим библиотеку pytest:
pip install pytest
2. Допустим, у нас есть такой простой код:
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
3. Напишем тесты для него. Создадим файл
test_calculator.py рядом с calculator.py:from calculator import add, subtract
def test_add():
assert add(2, 3) == 5
assert add(-1, 1) == 0
def test_subtract():
assert subtract(5, 3) == 2
assert subtract(0, 1) == -1
4. Запускаем тесты:
pytest
В результате, если все написано правильно, то мы увидим зеленые тесты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥5🔥1
Media is too big
VIEW IN TELEGRAM
00:10 - Архитектура проекта
01:41 - Создание моделей для БД
05:51 - Файл __main__.py
08:52 - Прокидываем сессию с БД в мидлварь
11:41 - Логика для реферальной системы
21:10 - Тесты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Requests-HTML — это мощная библиотека для веб-скрейпинга. Она позволяет извлекать данные с веб-страниц, обрабатывать JavaScript, взаимодействовать с DOM и загружать данные асинхронно.
Удобный инструмент для парсинга динамических веб-страниц и работы с их содержимым.
from requests_html import HTMLSession
# Создаем сессию
session = HTMLSession()
# Загружаем страницу
response = session.get("https://example.com")
# Выполняем JavaScript на странице
response.html.render()
# Извлекаем заголовки <h1>
headings = response.html.find("h1")
for heading in headings:
print(heading.text)
with open("page.html", "w") as f:
f.write(response.html.html)pip install requests-html
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Практическая статья о создании мини-чата на FastApi. Вы изучите вебсокеты, узнаете, зачем они нужны и как применяются в реальных приложениях. Также автор продемонстрирует работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.
А чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Walrus-оператор (:=) появился в Python 3.8 и позволяет присваивать значения переменным прямо внутри выражений. Это делает код более компактным и читаемым.
Разберем несколько примеров его использования
Обычно приходилось вычислять значение до цикла или в теле цикла:
data = input("Введите что-нибудь: ")
while data:
print(f"Вы ввели: {data}")
data = input("Введите что-нибудь: ")С
:= всё становится проще:while (data := input("Введите что-нибудь: ")):
print(f"Вы ввели: {data}")data вычисляется и проверяется в одном месте.С walrus-оператором можно отфильтровать данные прямо в списочном выражении:
numbers = ["10", "abc", "20", "xyz"]
valid_numbers = [int(num) for num in numbers if (number := num.strip()).isdigit()]
print(valid_numbers) # [10, 20]
num.strip() сохраняется в переменную number и тут же проверяется.Допустим, вы работаете с текстом, который нужно обработать, но только если длина строки превышает определённое значение:
lines = ["short", "this is a long line", "another long line", "tiny"]
long_lines = [line for line in lines if (length := len(line)) > 10]
print(long_lines) # ['this is a long line', 'another long line']
— Вы хотите избежать дублирования вычислений.
— Нужно улучшить читаемость циклов и условий.
— Вместо использования временных переменных.
Фича мощная, но злоупотреблять ею не стоит. Используйте в простых ситуациях, чтобы читаемость кода не пострадала.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤3👎1
Идеальный старт для тех, кто хочет освоить машинное обучение и научиться решать практические задачи. Она покажет, как легко самостоятельно построить модели машинного обучения: от анализа настроений в Twitter до прогнозов глобального потепления.
Без сложных математических формул, с акцентом на использование Python и библиотеки scikit-learn, книга подробно объясняет все этапы создания успешных ML-проектов. Подходит как новичкам, так и действующим специалистам, знакомым с Python, NumPy и matplotlib.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Flet — это мощный фреймворк для разработки интерактивных веб-приложений и настольных GUI, написанных полностью на Python. Он позволяет создавать приложения с современным интерфейсом без необходимости изучения HTML, CSS или JavaScript.
import flet as ft
def main(page: ft.Page):
page.title = "Flet App"
page.vertical_alignment = ft.MainAxisAlignment.CENTER
def button_click(e):
page.add(ft.Text(f"Привет, {name_input.value}!"))
name_input = ft.TextField(label="Введите имя", width=300)
greet_button = ft.ElevatedButton("Поздороваться", on_click=button_click)
page.add(name_input, greet_button)
ft.app(target=main)
pip install flet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4