Python для новичков

channel icon
Python, питон - программирование

Книги: @pyknigi

Условия размещения

Цена за 24 часа в ленте 1000,00
Цена за 1 час закрепления N/A
Взаимопиар Нет

Согласен рекламировать только IT тематику (кроме криптовалют)

+1
6 223
подписчиков
-15
~1.1k
охват 1 публикации
0
~1
постов / день
-0,2%
17,0%
ERR % ?

Статистика

Последние публикации

Python для новичков
18 сентября 2024 г. 8:08
Python для новичков
15 сентября 2024 г. 14:11
Примеры работы с библиотекой pywin32

### Установка pywin32

Перед использованием pywin32 убедитесь, что он установлен. Вы можете установить его с помощью pip:

pip install pywin32


### Работа с COM-объектами

#### Пример автоматизации Excel

import win32com.client

# Запуск Excel
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True

# Создание новой книги
workbook = excel.Workbooks.Add()

# Добавление данных в ячейки
sheet = workbook.ActiveSheet
sheet.Cells(1, 1).Value = "Hello"
sheet.Cells(1, 2).Value = "World"

# Сохранение и закрытие книги
workbook.SaveAs(r"C:\Path\To\Save\example.xlsx")
workbook.Close()
excel.Quit()


### Работа с Windows API

#### Получение списка запущенных процессов

import win32api
import win32process

# Получение списка всех процессов
process_ids = win32process.EnumProcesses()

# Вывод идентификаторов процессов
for pid in process_ids:
print(f"Process ID: {pid}")


### Работа с реестром Windows

#### Чтение ключа реестра

import winreg

# Открытие ключа реестра
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Run")

# Чтение значений
try:
i = 0
while True:
name, value, type = winreg.EnumValue(key, i)
print(f"Name: {name}, Value: {value}")
i += 1
except OSError:
pass

# Закрытие ключа
winreg.CloseKey(key)


### Работа с графическим интерфейсом

#### Отображение простого сообщения

import win32gui

# Отображение окна с сообщением
win32gui.MessageBox(0, "Hello, World!", "Title", 0)


### Работа с Windows Management Instrumentation (WMI)

#### Получение информации о системе

import wmi

# Инициализация WMI
c = wmi.WMI()

# Получение информации о процессоре
for processor in c.Win32_Processor():
print(f"Processor ID: {processor.ProcessorId.strip()}")
print(f"Name: {processor.Name}")
print(f"Number of Cores: {processor.NumberOfCores}")

# Получение информации о системе
for os in c.Win32_OperatingSystem():
print(f"OS Name: {os.Name}")
print(f"Version: {os.Version}")
print(f"Manufacturer: {os.Manufacturer}")


### Работа с событиями и журналами

#### Чтение событий из системного журнала

import win32evtlog

# Открытие журнала событий
server = 'localhost' # Локальная машина
logtype = 'System'
hand = win32evtlog.OpenEventLog(server, logtype)

# Чтение событий
flags = win32evtlog.EVENTLOG_FORWARDS_READ | win32evtlog.EVENTLOG_SEQUENTIAL_READ

events = win32evtlog.ReadEventLog(hand, flags, 0)
for event in events:
print(f"Event Category: {event.EventCategory}")
print(f"Time Generated: {event.TimeGenerated}")
print(f"Source Name: {event.SourceName}")
print(f"Event ID: {event.EventID}")
print(f"Event Type: {event.EventType}")

# Закрытие журнала
win32evtlog.CloseEventLog(hand)
Python для новичков
15 сентября 2024 г. 10:05
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Регистрируйтесь по ссылке: https://telega.in/n/pythonvideo
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Python для новичков
13 сентября 2024 г. 8:39
Шпаргалка по PyPDF2 с примерами кода:

### Установка PyPDF2
Для начала установим PyPDF2:
pip install pypdf2


### Импортирование библиотеки
import PyPDF2


### Чтение PDF файла
Пример чтения PDF файла и извлечения текста:
import PyPDF2

# Открываем PDF файл
with open('example.pdf', 'rb') as file:
reader = PyPDF2.PdfReader(file)

# Получаем количество страниц
num_pages = len(reader.pages)
print(f'Количество страниц: {num_pages}')

# Извлекаем текст с каждой страницы
for page_num in range(num_pages):
page = reader.pages[page_num]
text = page.extract_text()
print(f'Текст на странице {page_num + 1}:\n{text}')


### Объединение PDF файлов
Пример объединения нескольких PDF файлов в один:
import PyPDF2

# Список PDF файлов для объединения
pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']

# Создаем объект PdfMerger
merger = PyPDF2.PdfMerger()

# Добавляем каждый файл в PdfMerger
for pdf in pdf_files:
merger.append(pdf)

# Сохраняем объединенный PDF файл
with open('merged.pdf', 'wb') as output_file:
merger.write(output_file)


### Разделение PDF файла
Пример разделения PDF файла на отдельные страницы:
import PyPDF2

# Открываем исходный PDF файл
with open('example.pdf', 'rb') as file:
reader = PyPDF2.PdfReader(file)

# Разделяем на отдельные страницы
for page_num in range(len(reader.pages)):
writer = PyPDF2.PdfWriter()
writer.add_page(reader.pages[page_num])

# Сохраняем каждую страницу в отдельный файл
output_filename = f'page_{page_num + 1}.pdf'
with open(output_filename, 'wb') as output_file:
writer.write(output_file)


### Добавление водяного знака
Пример добавления водяного знака на каждую страницу PDF файла:
import PyPDF2

# Открываем исходный PDF файл и файл с водяным знаком
with open('example.pdf', 'rb') as input_file, open('watermark.pdf', 'rb') as watermark_file:
reader = PyPDF2.PdfReader(input_file)
watermark = PyPDF2.PdfReader(watermark_file).pages[0]

writer = PyPDF2.PdfWriter()

# Добавляем водяной знак на каждую страницу
for page_num in range(len(reader.pages)):
page = reader.pages[page_num]
page.merge_page(watermark)
writer.add_page(page)

# Сохраняем результат
with open('watermarked.pdf', 'wb') as output_file:
writer.write(output_file)


### Извлечение метаданных
Пример извлечения метаданных из PDF файла:
import PyPDF2

# Открываем PDF файл
with open('example.pdf', 'rb') as file:
reader = PyPDF2.PdfReader(file)

# Извлекаем метаданные
metadata = reader.metadata
print(metadata)


### Извлечение закладок (оглавления)
Пример извлечения закладок из PDF файла:
import PyPDF2

# Открываем PDF файл
with open('example.pdf', 'rb') as file:
reader = PyPDF2.PdfReader(file)

# Извлекаем закладки
bookmarks = reader.get_outlines()
for bookmark in bookmarks:
print(bookmark.title, bookmark.page)
Python для новичков
11 сентября 2024 г. 19:50
Шпаргалка по Python и Scrapy с примерами кода:

### Установка Scrapy
Для начала установим Scrapy:
pip install scrapy


### Создание нового проекта Scrapy
Создадим новый проект Scrapy:
scrapy startproject myproject


### Структура проекта
myproject/
scrapy.cfg
myproject/
__init__.py
items.py
middlewares.py
pipelines.py
settings.py
spiders/
__init__.py
myspider.py


### Создание паука (Spider)
Создадим простого паука в файле myproject/spiders/myspider.py:
import scrapy

class MySpider(scrapy.Spider):
name = "myspider"
start_urls = ['http://example.com']

def parse(self, response):
for title in response.css('h1::text'):
yield {'title': title.get()}


### Запуск паука
Запустим паука из корневой директории проекта:
scrapy crawl myspider


### Настройка Items
Определим структуру данных в myproject/items.py:
import scrapy

class MyItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()


### Использование Items в пауке
Обновим паука для использования Items:
import scrapy
from myproject.items import MyItem

class MySpider(scrapy.Spider):
name = "myspider"
start_urls = ['http://example.com']

def parse(self, response):
for title in response.css('h1::text'):
item = MyItem()
item['title'] = title.get()
item['link'] = response.url
yield item


### Сохранение данных
Сохраним данные в файл, запустив паука с параметром:
scrapy crawl myspider -o output.json


### Настройки проекта
Настроим проект в myproject/settings.py:
# Настройки для User-Agent
USER_AGENT = 'myproject (+http://www.yourdomain.com)'

# Настройки для логирования
LOG_LEVEL = 'INFO'

# Настройки для конвейеров (pipelines)
ITEM_PIPELINES = {
'myproject.pipelines.MyPipeline': 300,
}


### Создание конвейера (Pipeline)
Добавим конвейер для обработки данных в myproject/pipelines.py:
class MyPipeline:
def process_item(self, item, spider):
# Обработка данных
item['title'] = item['title'].upper()
return item


### Обход пагинации
Пример обхода страниц с пагинацией:
import scrapy

class MySpider(scrapy.Spider):
name = "myspider"
start_urls = ['http://example.com/page/1']

def parse(self, response):
for title in response.css('h1::text'):
yield {'title': title.get()}

next_page = response.css('a.next::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)


### Обработка ошибок
Добавим обработку ошибок в паука:
import scrapy
from scrapy.spidermiddlewares.httperror import HttpError
from twisted.internet.error import DNSLookupError
from twisted.internet.error import TimeoutError

class MySpider(scrapy.Spider):
name = "myspider"
start_urls = ['http://example.com']

def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, callback=self.parse, errback=self.errback_httpbin)

def parse(self, response):
# Ваш код для обработки успешного ответа
pass

def errback_httpbin(self, failure):
self.logger.error(repr(failure))
if failure.check(HttpError):
response = failure.value.response
self.logger.error('HttpError on %s', response.url)
elif failure.check(DNSLookupError):
request = failure.request
self.logger.error('DNSLookupError on %s', request.url)
elif failure.check(TimeoutError):
request = failure.request
self.logger.error('TimeoutError on %s', request.url)


Эта шпаргалка покрывает основные аспекты работы с Scrapy. Вы можете расширять и модифицировать её в зависимости от ваших потребностей.
Python для новичков
10 сентября 2024 г. 11:35
Python для новичков
10 сентября 2024 г. 6:38
Шпаргалка по FastAPI

Основы:

* Установка: pip install fastapi uvicorn
* Запуск: uvicorn main:app --reload (где main - файл с приложением, app - объект FastAPI)

Создание приложения:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
return {"message": "Hello World"}


Маршруты:

* GET: @app.get("/items/{item_id}")
* POST: @app.post("/items/")
* PUT: @app.put("/items/{item_id}")
* DELETE: @app.delete("/items/{item_id}")

Параметры:

* Путь: @app.get("/items/{item_id}")
* Запрос: @app.get("/items/"), async def read_items(q: str = None):
* Тело:
from pydantic import BaseModel

class Item(BaseModel):
name: str
description: str | None = None
price: float
tax: float | None = None

@app.post("/items/")
async def create_item(item: Item):
return item


Валидация данных:

* Pydantic: Автоматическая валидация данных, основанная на аннотациях типов.
* Пример: age: int = Field(..., gt=0, lt=120)

Документация:

* Swagger UI: Автоматически генерируется по адресу /docs.
* ReDoc: Доступна по адресу /redoc.

Асинхронность:

* Используйте `async` и `await` для асинхронных операций.
* Позволяет обрабатывать больше запросов одновременно.

Зависимости:

from fastapi import FastAPI, Depends

async def get_db():
db = ... # подключение к базе данных
try:
yield db
finally:
db.close()

@app.get("/items/")
async def read_items(db: Session = Depends(get_db)):
...


Пример с базой данных (SQLAlchemy):

from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session
from . import crud, models, schemas
from .database import SessionLocal, engine

models.Base.metadata.create_all(bind=engine)

app = FastAPI()

def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()

@app.post("/users/", response_model=schemas.User)
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
return crud.create_user(db=db, user=user)


Это лишь краткий обзор FastAPI. Для более глубокого изучения обратитесь к официальной документации.
Python для новичков
7 сентября 2024 г. 18:27
Станьте AI-разработчиком на Python и зарабатывайте от 150.000₽ в месяц 🔥🔥🔥

Мы научим вас создавать и тренировать нейронные сети, и вы сможете:

1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате

На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер:

🧬 Оценка выброса CO2 по параметрам машины
🧬 Сегментация изображения для робота доставщика
🧬 Трекинг людей на видео
🧬 Распознавание речи
и другие

Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта

🔥 Регистрируйтесь на бесплатный интенсивбесплатный интенсив! Встречаемся в ближайшую среду. Вы узнаете, как освоить самую востребованную профессию и гарантированно зарабатывать!
Python для новичков
7 сентября 2024 г. 5:14
Шпаргалка по использованию OpenCV для детекции движений и людей на Python.

### Установка OpenCV
pip install opencv-python


### Импорт необходимых библиотек
import cv2
import numpy as np


### Детекция движения с использованием разности кадров (Frame Differencing)
1. Загрузка видео или захват с камеры:
   cap = cv2.VideoCapture('video.mp4')  # Для видеофайла
# cap = cv2.VideoCapture(0) # Для захвата с камеры


2. Инициализация начального кадра:
   ret, frame1 = cap.read()
ret, frame2 = cap.read()


3. Основной цикл обработки:
   while cap.isOpened():
diff = cv2.absdiff(frame1, frame2)
gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
dilated = cv2.dilate(thresh, None, iterations=3)
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

for contour in contours:
if cv2.contourArea(contour) < 500:
continue
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(frame1, (x, y), (w + x, h + y), (0, 255, 0), 2)

cv2.imshow("feed", frame1)
frame1 = frame2
ret, frame2 = cap.read()

if cv2.waitKey(40) == 27: # Нажмите ESC для выхода
break

cap.release()
cv2.destroyAllWindows()


### Детекция людей с использованием HOG (Histogram of Oriented Gradients)
1. Инициализация детектора людей:
   hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())


2. Загрузка видео или захват с камеры:
   cap = cv2.VideoCapture('video.mp4')  # Для видеофайла
# cap = cv2.VideoCapture(0) # Для захвата с камеры


3. Основной цикл обработки:
   while cap.isOpened():
ret, frame = cap.read()
if not ret:
break

# Детекция людей
boxes, weights = hog.detectMultiScale(frame, winStride=(8, 8), padding=(8, 8), scale=1.05)

# Отрисовка прямоугольников вокруг обнаруженных людей
for (x, y, w, h) in boxes:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow("People Detection", frame)

if cv2.waitKey(30) == 27: # Нажмите ESC для выхода
break

cap.release()
cv2.destroyAllWindows()


### Полезные советы:
- Настройка параметров: Для улучшения детекции можно настроить параметры winStride, padding, и scale в методе hog.detectMultiScale.
- Фильтрация контуров: В детекции движения можно фильтровать контуры по площади, чтобы игнорировать мелкие движения.
- Оптимизация: Для ускорения работы можно уменьшить размер обрабатываемого кадра или использовать более быстрые методы детекции.
Python для новичков
5 сентября 2024 г. 14:37
Python для новичков
31 августа 2024 г. 13:31
Python для новичков
29 августа 2024 г. 10:27
Шпаргалка по созданию красивых графиков на Python с использованием библиотеки Matplotlib и Seaborn.

### 1. Установка библиотек

Если они еще не установлены, установи их с помощью pip:

pip install matplotlib seaborn


### 2. Импорт библиотек

import matplotlib.pyplot as plt
import seaborn as sns


### 3. Основы Matplotlib

#### 3.1. Построение простого графика

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, marker='o', linestyle='-', color='b')
plt.title('Простой график')
plt.xlabel('X ось')
plt.ylabel('Y ось')
plt.grid(True)
plt.show()


#### 3.2. Настройка стиля

Matplotlib поддерживает разные стили оформления:

plt.style.use('ggplot')  # Пример стиля


Популярные стили: 'ggplot', 'seaborn', 'fivethirtyeight', 'bmh', 'dark_background'.

#### 3.3. Многослойные графики

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [2, 3, 5, 7, 11]

plt.plot(x, y1, label='y = x^2')
plt.plot(x, y2, label='y = простое число')
plt.legend()
plt.show()


#### 3.4. Добавление аннотаций

plt.plot(x, y)
plt.text(3, 5, 'Точка (3, 5)', fontsize=12, color='red')
plt.show()


### 4. Использование Seaborn для более сложных графиков

Seaborn строит на основе Matplotlib и позволяет легко создавать более сложные графики.

#### 4.1. График распределения (Distribution Plot)

import seaborn as sns
import numpy as np

data = np.random.randn(1000)
sns.histplot(data, kde=True)
plt.show()


#### 4.2. Ящичный график (Box Plot)

tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
plt.show()


#### 4.3. Парные графики (Pair Plot)

sns.pairplot(tips, hue="sex")
plt.show()


#### 4.4. Тепловая карта (Heatmap)

corr = tips.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()


### 5. Дополнительные настройки

#### 5.1. Настройка размера графика

plt.figure(figsize=(10, 6))  # Ширина и высота


#### 5.2. Сохранение графика

plt.savefig('график.png', dpi=300, bbox_inches='tight')


#### 5.3. Установка ограничений на оси

plt.xlim([0, 10])
plt.ylim([0, 20])


### 6. Комбинирование Matplotlib и Seaborn

Ты можешь использовать обе библиотеки вместе, чтобы достичь желаемого результата.

sns.set(style="whitegrid")
plt.plot(x, y)
sns.despine()
plt.show()


Чтобы сохранить график в формате JPG, можно использовать метод savefig с указанием расширения .jpg. Вот как это делается:

### Сохранение графика в формате JPG

import matplotlib.pyplot as plt

# Пример простого графика
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, marker='o', linestyle='-', color='b')
plt.title('Простой график')
plt.xlabel('X ось')
plt.ylabel('Y ось')
plt.grid(True)

# Сохранение графика в формате JPG
plt.savefig('grafik.jpg', format='jpg', dpi=300, bbox_inches='tight')
plt.show()


### Параметры метода savefig:

- `'grafik.jpg'` — имя файла с расширением .jpg. Это указывает на то, что график будет сохранен в формате JPG.
- `format='jpg'` — (опционально) явное указание формата файла. Обычно Matplotlib определяет его автоматически по расширению файла.
- `dpi=300` — разрешение изображения (dots per inch). Чем выше значение, тем выше качество изображения.
- `bbox_inches='tight'` — это параметр обрезает лишнее пространство вокруг графика, что позволяет сохранить изображение без пустых полей.

Такой код сохранит твой график в файл grafik.jpg в текущей директории с хорошим качеством.
Python для новичков
28 августа 2024 г. 7:36
Шпаргалка по асинхронности в Python

#### 1. Основные концепции
- Асинхронность позволяет выполнять задачи параллельно без блокировки основного потока программы.
- Синхронный код выполняется последовательно, каждая операция блокирует дальнейшее выполнение до её завершения.
- Асинхронный код позволяет выполнять другие задачи, пока одна операция ожидает завершения.

#### 2. Ключевые понятия
- `async`: Ключевое слово, используемое для объявления асинхронной функции.
- `await`: Приостанавливает выполнение асинхронной функции до завершения ожидаемой задачи.

#### 3. Асинхронные функции
import asyncio

async def my_async_function():
print("Начало задачи")
await asyncio.sleep(2) # Асинхронная задержка на 2 секунды
print("Задача завершена")

- Асинхронные функции возвращают корутину (объект, который можно запускать и ожидать).

#### 4. Запуск асинхронных функций
async def main():
await my_async_function()

asyncio.run(main())

- `asyncio.runasyncio.run()` используется для запуска основной корутины в асинхронной программе.

#### 5. Параллельное выполнение задач
- `asyncio.create_task()`: Создает асинхронную задачу, которая выполняется параллельно с другими задачами.

async def main():
task1 = asyncio.create_task(my_async_function())
task2 = asyncio.create_task(my_async_function())
await task1 # Ожидание завершения task1
await task2 # Ожидание завершения task2


#### 6. Асинхронные итераторы и генераторы
- Асинхронные итераторы: Используют async for.
- Асинхронные генераторы: Используют async def и yield.

async def async_generator():
for i in range(3):
await asyncio.sleep(1)
yield i

async def main():
async for value in async_generator():
print(value)

asyncio.run(main())


#### 7. Работа с несколькими задачами
- `asyncio.gather()`: Выполняет несколько корутин параллельно и возвращает их результаты.

async def task1():
await asyncio.sleep(1)
return "Task 1 завершена"

async def task2():
await asyncio.sleep(2)
return "Task 2 завершена"

async def main():
results = await asyncio.gather(task1(), task2())
print(results)

asyncio.run(main())


#### 8. Обработка исключений в асинхронном коде
async def faulty_task():
raise ValueError("Ошибка в задаче!")

async def main():
try:
await faulty_task()
except ValueError as e:
print(f"Исключение поймано: {e}")

asyncio.run(main())


#### 9. Полезные функции и примитивы
- `asyncio.sleep(seconds)`: Асинхронная задержка.
- `asyncio.wait_for(coroutine, timeout)`: Ожидание задачи с таймаутом.
- `asyncio.Event`: Асинхронный аналог threading.Event.
- `asyncio.Queue`: Асинхронная очередь.

#### 10. Заключение
- Асинхронность полезна для задач ввода-вывода, где операции могут блокировать выполнение программы (например, работа с сетью).
- Понимание асинхронности важно для создания высокопроизводительных приложений, которые могут эффективно использовать ресурсы.
Python для новичков
27 августа 2024 г. 15:36
Python для новичков
26 августа 2024 г. 5:53
Шпаргалка по регулярным выражениям в Python (re)

#### 1. Основы синтаксиса
import re

# Основные символы
. # Любой символ, кроме новой строки
^ # Начало строки
$ # Конец строки
[] # Символьный класс (например, [a-z])
| # Логическое "ИЛИ" (например, a|b)
() # Группировка


#### 2. Поиск, замена, разбиение и сопоставление текста

Поиск:
re.findall(r'\d+', text)  # Найти все числа
re.search(r'\d+', text) # Найти первое число


Замена:
re.sub(r'\d+', '#', text)  # Заменить все числа на '#'


Разбиение строки:
re.split(r'\s+', text)  # Разбить строку по одному или более пробелам


Полное сопоставление:
re.fullmatch(r'\d{3}-\d{2}-\d{2}', text)  # Проверить, полностью ли строка соответствует шаблону


#### 3. Группировка и квантификаторы
# Квантификаторы
* # 0 или более раз
+ # 1 или более раз
? # 0 или 1 раз
{n} # Ровно n раз
{n,} # Не менее n раз
{n,m} # От n до m раз

# Группировка
pattern = r'(\d{3})-(\d{2})-(\d{2})'
match = re.search(pattern, text)
match.group(1) # Доступ к первой группе


#### 4. Специальные символы и классы
\d  # Любая цифра
\D # Любой нецифровой символ
\s # Любой пробельный символ
\S # Любой непробельный символ
\w # Любая буква, цифра или _
\W # Любой символ, кроме \w

# Пример
re.findall(r'\b\d{3}\b', text) # Найти три цифры, ограниченные границей слова


Эта шпаргалка охватывает не только основные операции поиска, но и замены, разбиения строк и проверки полного соответствия регулярным выражениям в Python.
Python для новичков
25 августа 2024 г. 5:38
Шпаргалка по Pygame

#### 1. Установка и импорт
pip install pygame

import pygame
pygame.init()


#### 2. Создание окна
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Моя игра")


#### 3. Основной цикл
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((0, 0, 0)) # Очистка экрана
pygame.display.flip() # Обновление экрана
pygame.quit()


#### 4. Работа с изображениями
image = pygame.image.load("image.png")
screen.blit(image, (100, 100))


#### 5. Работа с текстом
font = pygame.font.Font(None, 36)
text = font.render("Привет, Pygame!", True, (255, 255, 255))
screen.blit(text, (50, 50))


#### 6. Примеры рисования
pygame.draw.line(screen, (255, 0, 0), (100, 100), (200, 200), 5)
pygame.draw.circle(screen, (0, 255, 0), (400, 300), 50)
pygame.draw.rect(screen, (0, 0, 255), (300, 250, 100, 50))


#### 7. Звуки и музыка
sound = pygame.mixer.Sound("sound.wav")
sound.play()
pygame.mixer.music.load("music.mp3")
pygame.mixer.music.play(-1) # Зацикливание


#### 8. Перемещение объектов
x, y = 100, 100
x += 5 # Двигаем объект
screen.blit(image, (x, y))


#### 9. Обработка ввода
keys = pygame.key.get_pressed()  # Клавиатура
if keys[pygame.K_LEFT]:
x -= 5

mouse_pos = pygame.mouse.get_pos() # Мышь
if pygame.mouse.get_pressed()[0]:
print("Левая кнопка нажата")


#### 10. Контроль FPS
clock = pygame.time.Clock()
clock.tick(60) # 60 FPS


#### 11. Спрайты и группы
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((50, 50))
self.image.fill((0, 255, 0))
self.rect = self.image.get_rect()

player = Player()
all_sprites = pygame.sprite.Group(player)
all_sprites.update() # Обновление спрайтов
all_sprites.draw(screen) # Отрисовка спрайтов


#### 12. Проверка коллизий
if pygame.sprite.spritecollide(player, all_sprites, False):
print("Столкновение!")
if player.rect.colliderect(other_rect):
print("Столкновение с прямоугольником!")


#### 13. Таймеры и задержки
pygame.time.set_timer(pygame.USEREVENT, 1000)  # Каждую секунду


Эта шпаргалка покрывает основные аспекты работы с Pygame и поможет вам быстро ориентироваться в создании простых игр и приложений.
Python для новичков
25 августа 2024 г. 3:27
Освободите Павла, ептыть! )

#FREEDUROV
Python для новичков
23 августа 2024 г. 8:10
🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 27-28 августа в 19:00 мск.🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 27-28 августа в 19:00 мск.

О перспективах направления Python и многом другом расскажет Рафаэль Мухаметшин, Middle Бэкенд-разработчик в «ПИК Digital» с опытом в разработке более 3 лет.

На вебинаре вы:

☑️ Самостоятельно напишете Telegram-бота с карточными мини-играми.
☑️ Познакомитесь с синтаксисом языка и сферами его применения.
☑️ Поймете как продолжить обучение, какие навыки потребуются, чтобы стать backend-разработчиком на Python.
☑️ Узнаете, чего ждут работодатели от junior-разработчиков и что делать, чтобы найти работу без опыта.

🎁 Приятные бонусы: полезный гайд для начинающего Python-разработчика и гайд о сленге в IT всем участникам интенсива!
Python для новичков
23 августа 2024 г. 6:01
Использование DALL-E и других моделей

#### DALL-E

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

##### Использование DALL-E через API

Чтобы использовать DALL-E, вам потребуется доступ к API OpenAI, который предоставляет возможности для генерации изображений.

1. Установка библиотеки OpenAI:

   pip install openai


2. Пример кода для генерации изображений с помощью DALL-E:

   import openai

# Ваш API-ключ OpenAI
openai.api_key = 'YOUR_API_KEY'

# Текстовое описание изображения
prompt = "Собака, играющая в парке с мячом"

# Запрос к API для генерации изображения
response = openai.Image.create(
prompt=prompt,
n=1, # количество изображений
size="512x512" # размер изображения
)

# Получаем URL сгенерированного изображения
image_url = response['data'][0]['url']

print(f"Сгенерированное изображение доступно по адресу: {image_url}")


#### Stable Diffusion

Stable Diffusion — это модель для генерации изображений, которая использует диффузионные процессы. Она также способна создавать изображения на основе текстовых описаний и распространяется как open-source.

##### Установка и использование Stable Diffusion

1. Установка необходимых библиотек:

Для работы с Stable Diffusion рекомендуется использовать библиотеку diffusers от Hugging Face.

   pip install diffusers transformers torch


2. Пример кода для генерации изображений с помощью Stable Diffusion:

   import torch
from diffusers import StableDiffusionPipeline

# Загрузка модели
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda") # Для ускорения можно использовать GPU

# Текстовое описание изображения
prompt = "A futuristic cityscape with flying cars at sunset"

# Генерация изображения
image = pipe(prompt).images[0]

# Сохранение изображения
image.save("generated_image.png")


##### Замечания и советы:

- Аппаратные требования: Stable Diffusion может требовать значительных вычислительных ресурсов, особенно если используется на больших разрешениях. Рекомендуется использовать GPU с поддержкой CUDA.
- Лицензия и использование: При использовании моделей генерации изображений, особенно для коммерческих целей, важно ознакомиться с условиями лицензии и использования.
- Точность и вариативность: При генерации изображений на основе текстовых описаний старайтесь экспериментировать с разными текстами и параметрами, чтобы добиться желаемого результата.

Эти модели открывают огромные возможности для творчества и автоматизации в создании графического контента.
Python для новичков
22 августа 2024 г. 5:58
Шпаргалка по синтезу речи на русском языке с использованием Python.

### 1. Использование gTTS (Google Text-to-Speech)

gTTS (Google Text-to-Speech) — это библиотека, которая позволяет использовать сервис Google для преобразования текста в речь.

#### Установка

pip install gTTS


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

from gtts import gTTS
import os

# Текст для преобразования
text = "Привет, как дела?"

# Создаем объект gTTS
tts = gTTS(text=text, lang='ru', slow=False)

# Сохраняем в аудиофайл
tts.save("output.mp3")

# Воспроизводим файл (опционально, зависит от вашей ОС)
os.system("start output.mp3") # На Windows
# os.system("mpg321 output.mp3") # На Linux, если установлен mpg321


### 2. Использование pyttsx3

pyttsx3 — это офлайн-библиотека для синтеза речи, которая работает без подключения к интернету и поддерживает различные движки.

#### Установка

pip install pyttsx3


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

import pyttsx3

# Создаем объект движка
engine = pyttsx3.init()

# Устанавливаем свойства
engine.setProperty('rate', 150) # Скорость речи
engine.setProperty('volume', 0.9) # Громкость (0.0 до 1.0)

# Устанавливаем русский язык (если поддерживается вашим движком)
voices = engine.getProperty('voices')
for voice in voices:
if 'ru' in voice.languages:
engine.setProperty('voice', voice.id)
break

# Текст для синтеза
text = "Привет, как дела?"

# Запускаем синтез речи
engine.say(text)
engine.runAndWait()


### 3. Использование Yandex SpeechKit

Yandex SpeechKit предлагает облачный сервис для синтеза речи на русском языке.

#### Установка

Установите библиотеку requests для отправки HTTP-запросов, если она еще не установлена:

pip install requests


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

Для использования Yandex SpeechKit вам потребуется API-ключ.

import requests

# Замените 'YOUR_API_KEY' на ваш API-ключ
api_key = 'YOUR_API_KEY'
text = "Привет, как дела?"

# URL API
url = 'https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize'

# Параметры запроса
params = {
'text': text,
'lang': 'ru-RU',
'voice': 'oksana',
'speed': '1.0',
'format': 'mp3'
}

# Заголовки запроса
headers = {
'Authorization': f'Api-Key {api_key}'
}

# Отправляем запрос
response = requests.post(url, headers=headers, data=params)

# Сохраняем аудиофайл
with open('output.mp3', 'wb') as f:
f.write(response.content)

# Воспроизводим файл (опционально)
os.system("start output.mp3") # На Windows
# os.system("mpg321 output.mp3") # На Linux, если установлен mpg321