[*] pr0gramm1ng basics
25 subscribers
50 photos
11 videos
20 files
41 links
Обзор различных кодов и импортируемых библиотек, информация об обновлениях и многое другое у меня на канале.
Download Telegram
Что же выведет в консоль?
Anonymous Poll
29%
A
0%
B
71%
C
0%
D
Сегодня создаем кастомный итератор и реализуем iter + next

Для гибкого управления порядком обхода данных используют собственные итераторы, реализуя методы __iter__() и __next__().

Начнём с создания класса Countdown, который будет отсчитывать числа от start до 1 включительно:
class Countdown:
def __init__(self, start):
self.current = start


В __init__ мы сохраняем текущее значение. Теперiterм метод __iter__(), который возвращает сам iter
    def __iter__(self):
return self


Метод __next__() будет возвращать текущее число, уменьшать его и вызывать исключение StopIteration, когда достnextля:
    def __next__(self):
if self.current == 0:
raise StopIteration
value = self.current
self.current -= 1
return value


Проверяем работу кастомного итератора:
for num in Countdown(5):
print(num) # 5, 4, 3, 2, 1


Важно: после завершения итерации объект нельзя переиспользовать:
countdown = Countdown(3)
list(countdown) # [3, 2, 1]
list(countdown) # [] - пустой список!


🔥 Альтернатива: для простых случаев используйте генераторы — они короче и удобнее.
Как создать свой сайт на python 🐍

Для создания своего сайта на python можно использовать фреймворк Flask. Это очень мощный инструмент, которые позволяет создавать свои сайты через Python без особого знания HTML и стилей CSS

Установка Flask:

pip install flask

Базовое создание сайта при помощи Flask:

from flask import Flask #импортируем библиотеку

app = Flask(__name__) #создаём пустую страницу сайта с названием модуля (__name__)

@app.route('/') #по этому url будет открываться одна страница
def HelloWorld():
return 'Hello, World!' #то что будет на сайте

if __name__ == '__main__':
app.run(debug=True) #запускаем в режиме отладки

Для создания нескольких страниц добавляйте больше декораторов @app.route

@app.route('/')
def main_route():
return 'main_route'

@app.route('/about')
def about():
return 'about'

@app.route('/questions')
def questions():
return 'Вопрос - ответ'

Также Flask позволяет работать с заготовками HTML-кода:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def main_template():
return render_template('index.html')

>>> Если вы заинтересовались созданием сайтов, то что вам следует изучить:

1. Работу с Forms

2. Работу с бд (базами данных). Например SQLAlchemy

3. Научиться работать с регистрацией пользователя и ТД.

>>> Документация по Flask на русском 🔥

>>> Документация по Flask на английском 🔥
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет

Мне надоело делать ботов, поэтому я решил сделать свой проект мини консоль. Там будет множество полезных функций и сегодня я начал разрабатывать эту консоль. Объявляю первый день. Интерфейс консоли сделан при помощи библиотеки PyQt6. Он сгенерирован с помощью ИИ (извините, но я не настолько хорошо знаю эту библиотеку). Все команды реализованы при помощи моих навыков программирования. Консоль я буду улучшать и добавлять новые команды.

Что я хочу в ней изменить и что добавить:

1. Добавить команды для того чтобы узнать информацию о своём пк
2. Добавить мини приложение для открытия самой консоли
3. Сделать какие-нибудь фановые команды (например бросить кубик или прокрутить барабан)
Forwarded from Roblox
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
2 день разработки консоли

Сегодня я добавил новые команды. В частности это команды для получения информации о своём компьютере и добавил немного математики. Также добавил фановые команды (бросок кубика и прокрутка барабана). Планирую написать мини приложение на customTkinter для запуска этой консоли (возможно перепишу его на PyQt6, когда изучу). Пока что всё....
Тренируем мозги с задачами по ML и AI.

Я сам по ним учусь

Два незаменимых ресурса для практики в машинном обучении и нейросетях:

▶️ Deep-ML — задачи по линейной алгебре, машинному и глубокому обучению. Подходит для постепенного погружения.

▶️ Tensorgym — упражнения разного уровня сложности, чтобы закрепить теорию и прокачать практику.

Идеально подойдёт, если хотите подтянуть навыки и разобраться в тонкостях ML
Превращаем текст в голос!

Устанавливаем библиотеку:
pip install gTTS


Импортируем класс gTTS модуля gtts и os:
from gtts import gTTS
import os


Задаём текст для озвучки:
text = "Привет! Этот текст превращается в голос."


Создаём объект gTTS с русским языком:
tts = gTTS(text=text, lang="ru")


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


Воспроизводим результат в зависимости от ОС:
os.system("start voice.mp3")  # Windows
# os.system("open voice.mp3") # macOS
# os.system("xdg-open voice.mp3") # Linux


🔥 Запускаем скрипт и текст превращается в голос, готовый к прослушиванию.
1
Превращаем текст в баннер с помощью pyfiglet

С помощью библиотеки pyfiglet на python можно преобразовать слово в ASCII-арт или в баннер для своих проектов.

Как работает эта библиотека

У неё есть много .fig файлов, из которых она достаёт ASCII-текст и собирает из них слово.

Установка pyfiglet:

pip install pyfiglet

Самый простой пример программы для преобразования текста с помощью figlet_format:

import pyfiglet

text = 'Hello'
art = pyfiglet.figlet_format(text)
print(art)

Пример вывода этой программы:

_   _      _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
| _ | __/ | | (_) |
|_| |_|\___|_|_|\___/

Вот ещё один пример с ручным указанием шрифта с помощью Figlet. По умолчанию standart

import pyfiglet 

fig = pyfiglet.Figlet(font='slant')
art = fig.renderText('Hello')
print(art)

Вот вывод программы:

    __  __     ____
/ / / /__ / / /___
/ /_/ / _ \/ / / __ \
/ __ / __/ / / /_/ /
/_/ /_/\___/_/_/\____/

Как узнать сколько шрифтов доступно в pyfiglet

Вот небольшая программа для того чтобы узнать сколько шрифтов поддерживает ваша версия pyfiglet:

import pyfiglet

# Получить список всех доступных шрифтов
all_fonts = pyfiglet.FigletFont.getFonts()

print(f"Всего доступно шрифтов: {len(all_fonts)}")
print("Все шрифты")
for i, font in enumerate(all_fonts[:len(all_fonts)], 1):
print(f"{i:2d}. {font}")
1❤‍🔥1🤩1🕊1
Модуль atexit в python 🐍

Модуль atexit позволяет запустить какие-либо функции, которые будут выполнены при нормальном завершении программы

Этот модуль не надо устанавливать так как он встроен в python 🐍

Вот пример того как использовать модуль atexit в программах:

import atexit

def cleanup_function():
print("Выполняется очистка...")

# Регистрация функции
atexit.register(cleanup_function)

def square_number(n):
return n**2

nums = [1, 2, 3, 4, 5]
print(list(map(square_number, nums)))

После выполнения этой программы корректно, то функция cleanup_function() выполнится.

Вот что выведется в терминале:

[1, 4, 9, 16, 25]
Выполняется очистка...

Также уже зарегистрированную функцию можно отклонить регистрацию функции:

import atexit

def cleanup_function():
print("Выполняется очистка...")

# Регистрация функции
atexit.register(cleanup_function)

def square_number(n):
return n**2

nums = [1, 2, 3, 4, 5]
print(list(map(square_number, nums)))

#Отклонение регистрации функции
atexit.unregister(cleanup_function)

Таким образом в терминале последняя функция выводится не будет:

[1, 4, 9, 16, 25]

Также функцию atexit.register можно использовать как декоратор для функции:

import atexit

@atexit.register #Регистрация с помощью декоратора
def cleanup_function():
print("Выполняется очистка...")

def square_number(n):
return n**2

nums = [1, 2, 3, 4, 5]
print(list(map(square_number, nums)))

Выведет в терминал:

[1, 4, 9, 16, 25]
Выполняется очистка...

Я думаю что эта библиотека довольно полезная. Например можно после выполнении программы очищать программу от ненужных файлов, которые были созданы при выполнении программы
🔥1
Библиотека notify-py в python 🐍

С помощью этой библиотеки вы сможете получать сообщения python как от системы

Установка notify-py:

pip install notify-py

Настройка сообщения от системы:

from notifypy import Notice 

notification = Notice() #создаём объект сообщение

notification.title = 'Готово' #Ставим название сообщение
notification.message = 'Скрипт выполнен...' #Указываем текст сообщения

notification.send() #отправляем сообщение

На фото изображено как будет выглядеть сообщение от этой программы

Эту библиотеку можно использовать для визуализации выполнения программы. Например при удачном выполнении программы будет выводится "Программа выполнена успешно..", а при неудачном "Программа была выполнена некорректно.."
Моржовый оператор в python 🐍

Этот оператор позволяет присваивать значение переменной внутри выражения. Он появился в Python 3.8

Например, выражение без моржового оператора:

user_id = 1
if user_id == 1:
print(user_id)

Тот же код с использованием моржового оператора:

if (user_id := 1) == 1:
print(user_id)

Пример с использованием циклов.

1️⃣ пример:

for num in (nums := [1, 2, 3, 4, 5]).copy():
nums.append(num**2)
nums.pop(0)
print(nums)

2️⃣ пример:

nums =  [1, 2, 2, 3, 2, 28, 19, 2]
while (num := 2) in nums:
print(nums)
nums.pop(0)

Этот оператор при правильном использовании сделает ваш код чище и меньше
Детекция лиц на изображении в python 🐍

RetinaFace - библиотека для обнаружения лиц на изображении. Она определяет лицо по 5 ключевым точкам (landmarks) - это нос, правый глаз, левый глаз, правый уголок рта и левый уголок рта.

С помощью этой библиотеки можно определять сколько человек изображено на изображении (видео).

⚡️ Установка ⚡️:

pip install retina-face

Какие интересные проекты можно сделать с помощью этой библиотеки:

1️⃣. Сколько лиц на изображении в тг боте (или без бота)
2️⃣. Сколько лиц на видео в реальном времени (с помощью cv2)
3️⃣. Определение настроения (подставлять смайлик по выражению лица 😊) с помощью ключевых точек (landmarks)

С помощью этой библиотеки можно работать с компьютерным зрением. Работает библиотека стабильно на версии Python 3.8
🤩1
[*] pr0gramm1ng basics
Photo
Сделал небольшой код на python 🐍 с использованием библиотеки RetinaFace 😶

Вот сам код:

from retinaface import RetinaFace
import cv2

path_to_file = 'image_1.png' # путь к файлу на вашем пк

image = cv2.imread(path_to_file) # открываем файл

if image is None:
raise FileNotFoundError(f"Не удалось загрузить изображение: {image}")

resp = RetinaFace.detect_faces('image_1.png') # считываем лица

if isinstance(resp, dict): # есть ли лица на фото
for face_id, face_info in resp.items(): # из словаря достаёём значения для построения квадрата на лицо
facial_area = face_info["facial_area"]
x1, y1, x2, y2 = facial_area

cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 0), 2) # отображаем квадрат

cv2.imwrite("output_image_path.png", image) # сохраняем
print(f"Изображение с обнаруженными лицами сохранено как: output_image_path.png")


В коде есть небольшое объяснение, но немного поясню сам. Метод detect_faces возвращает список словарей:

{
"face_1": {
"score": 0.999,
"facial_area": [x1, y1, x2, y2],
"landmarks": {
"left_eye": [x, y],
"right_eye": [x, y],
"nose": [x, y],
"mouth_left": [x, y],
"mouth_right": [x, y]
}
},
"face_2": {
"score": 0.987,
"facial_area": [x1, y1, x2, y2],
"landmarks": { ... }
},
...
}


Здесь score - это уверенность (насколько модель уверена, что на изображении есть лицо), facial_area - координаты ограничивающего прямоугольника: [x1, y1, x2, y2], где: (x1, y1) — верхний левый угол, (x2, y2) — нижний правый угол, landmarks - ключевые точки (нос, правый уголок рта, левый уголок рта, правый глаз, левый глаз).

⚡️ Что делает программа: указываешь путь к файлу (обязательно изображение) и программа на этом изображении ищет лица и прикрепляет к ним квадраты. На фотографиях есть изображение до обработки и после ⚡️
🔥1
[*] pr0gramm1ng basics
Photo
Библиотека Tensorflow на python 🐍

Tensorflow - мощный фреймворк с открытым исходным кодом для машинного обучения и разработки нейросетей, разработанный компанией Google.

Установка:

pip install tensorflow 

Также в этой библиотеке есть встроенный API Keras. Он полностью интегрирован в Tensorflow.

🤖 Пример нейросети на Tensorflow:

import tensorflow as tf #импортируем

# 1. Загрузка данных (встроенный датасет)
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0 # Нормализация

# 2. Построение модели
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)), # Сглаживаем изображение 28x28 в вектор
tf.keras.layers.Dense(128, activation='relu'), # Полносвязный слой на 128 нейронов
tf.keras.layers.Dropout(0.2), # Регуляризация для борьбы с переобучением
tf.keras.layers.Dense(10) # Выходной слой на 10 классов (цифры 0-9)
])

# 3. Компиляция модели
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])

# 4. Обучение модели
model.fit(x_train, y_train, epochs=5)

# 5. Оценка качества
model.evaluate(x_test, y_test, verbose=2)

Для каких задач чаще всего используется Tensorflow:

1. Компьютерное зрение (Computer Vision). Например библиотека Mediapipe.

2. Обработка естественного языка. Например, определение тональности (NLTK + Tensorflow), машинный перевод (Tensorflow + Transformers (Hugging Face)), генерация текста (чат-боты)

3. Обработка звука и речи (Tensorflow Audio или Tensorflow + Librosa)

🔥 Щас на этой библиотеке я работаю над созданием своей нейросети. Она будет распознавать цифры, который я ей написал. Вчера 5 часов делал датасет и переобучил нейросеть. Сегодня придётся новый делать, поэтому не знаю когда дам её код. Стабильно библиотека работает на версии Python 3.8 🔥