Latest Posts from Python для новичков (@pythonvideo) on Telegram

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

Python для новичков
Админ: @solkogan
Купить рекламу: https://telega.in/c/pythonvideo
6,417 Subscribers
255 Photos
15 Videos
Last Updated 27.02.2025 08:32

The latest content shared by Python для новичков on Telegram


Декораторы могут принимать параметры, что позволяет создавать более гибкие декораторы. Например:

def repeat(num_times):
def decorator_repeat(func):
def wrapper(*args, **kwargs):
for _ in range(num_times):
value = func(*args, **kwargs)
return value
return wrapper
return decorator_repeat

@repeat(num_times=4)
def say_hello():
print("Hello")

say_hello() # Выведет "Hello" 4 раза

Подписывайтесь, будет много интересного )

👇👇👇

https://t.me/info_sol

👆👆👆

Использование contextlib.suppress для игнорирования исключений

Это позволяет писать код более лаконично:

from contextlib import suppress

with suppress(FileNotFoundError):
with open("file.txt", "r") as file:
content = file.read()

https://habr.com/ru/companies/amvera/articles/858292/

🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 20-21 ноября в 19:00 мск.

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

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

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

🎁 Приятные бонусы: полезный гайд для начинающего Python-разработчика и гайд о сленге в IT всем участникам интенсива!

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

### 1. Использование enumerate()
Когда вам нужно итерироваться по элементам списка и получать их индексы, используйте enumerate() вместо range(len()):
my_list = ['a', 'b', 'c']
for index, value in enumerate(my_list):
print(index, value)


### 2. Списковые включения для фильтрации
Используйте списковые включения (list comprehensions) для создания списков на основе существующих, с возможностью фильтрации:
squared_evens = [x**2 for x in range(10) if x % 2 == 0]


### 3. Использование zip()
Функция zip() позволяет объединять несколько списков в пары, что может быть полезно для обработки данных:
names = ['Alice', 'Bob', 'Charlie']
ages = [24, 30, 22]
combined = list(zip(names, ages))


### 4. *args и **kwargs
Используйте *args и **kwargs в функциях, чтобы сделать их более гибкими и позволяющими передавать переменное количество аргументов:
def my_function(*args, **kwargs):
print(args) # кортеж позиционных аргументов
print(kwargs) # словарь именованных аргументов


### 5. contextlib для управления ресурсами
Используйте contextlib для создания контекстных менеджеров и автоматического управления ресурсами:
from contextlib import contextmanager

@contextmanager
def my_resource():
# Инициализация ресурса
yield resource
# Освобождение ресурса


### 6. Использование defaultdict из модуля collections
Если вы часто работаете с словарями и хотите избежать ошибок при добавлении значений, используйте defaultdict:
from collections import defaultdict

my_dict = defaultdict(int)
my_dict['a'] += 1 # Не вызовет KeyError


### 7. Генераторы для работы с большими данными
Используйте генераторы для работы с большими объемами данных, чтобы избежать излишнего расхода памяти:
def my_generator():
for i in range(1000000):
yield i * 2


### 8. set для удаления дубликатов
Используйте множество (set), чтобы быстро удалить дубликаты из списка:
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))


### 9. Использование itertools для комбинаций и перестановок
Модуль itertools предоставляет мощные инструменты для работы с итераторами, включая функции для генерации комбинаций и перестановок:
from itertools import combinations

for combo in combinations([1, 2, 3, 4], 2):
print(combo)


### 10. Печать отладочной информации с помощью logging
Используйте модуль logging вместо print() для более продвинутой отладки. Вы сможете легко контролировать уровень логирования и формат сообщений:
import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug("Это отладочное сообщение")


### 11. Используйте f-строки для форматирования строк
f-строки (доступны с Python 3.6) позволяют удобно форматировать строки:
name = "Alice"
age = 30
print(f"{name} is {age} years old.")

Шпаргалка по библиотеке face_recognition, которая поможет вам быстро начать работать с распознаванием лиц в Python.


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

Убедитесь, что у вас установлены следующие зависимости:

pip install face_recognition


Если у вас возникают проблемы с установкой, убедитесь, что у вас также установлены dlib и cmake. Для установки dlib может потребоваться компилятор C++.

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

import face_recognition
import cv2 # Для работы с изображениями
import numpy as np


### Основные функции

1. Загрузка изображений
- Загрузка изображения из файла:
 image = face_recognition.load_image_file("your_image.jpg")


2. Обнаружение лиц
- Получение расположения лиц на изображении:
 face_locations = face_recognition.face_locations(image)


3. Извлечение признаков лиц
- Получение векторов признаков для каждого обнаруженного лица:
 face_encodings = face_recognition.face_encodings(image)


4. Сравнение лиц
- Сравнение векторов признаков для определения, совпадают ли лица:
 results = face_recognition.compare_faces([known_face_encoding], unknown_face_encoding)


5. Определение имен лиц
- Определение имени на основе векторов признаков:
 known_face_encodings = [face_recognition.face_encodings(face_recognition.load_image_file("known_face.jpg"))[0]]
known_face_names = ["Your Name"]

for unknown_face_encoding in face_encodings:
results = face_recognition.compare_faces(known_face_encodings, unknown_face_encoding)
if True in results:
first_match_index = results.index(True)
name = known_face_names[first_match_index]


### Пример использования

#### Полный пример распознавания лиц на изображении

import face_recognition
import cv2

# Загрузка изображения
image = face_recognition.load_image_file("your_image.jpg")

# Обнаружение лиц
face_locations = face_recognition.face_locations(image)
face_encodings = face_recognition.face_encodings(image)

# Конвертация изображения в формат OpenCV
image_cv2 = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)

# Вывод результата
for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
# Нарисовать прямоугольник вокруг лица
cv2.rectangle(image_cv2, (left, top), (right, bottom), (0, 255, 0), 2)

# Сравнение с известными лицами (если есть)
# known_face_encodings - список известных векторов
# known_face_names - список имен известных лиц
results = face_recognition.compare_faces(known_face_encodings, face_encoding)

name = "Unknown"
if True in results:
first_match_index = results.index(True)
name = known_face_names[first_match_index]

# Отображение имени
cv2.putText(image_cv2, name, (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)

# Показать изображение
cv2.imshow("Image", image_cv2)
cv2.waitKey(0)
cv2.destroyAllWindows()


### Полезные советы

- Работа с видео: Чтобы распознавать лица в реальном времени, вы можете использовать библиотеку OpenCV для захвата видео с веб-камеры:

 video_capture = cv2.VideoCapture(0)

while True:
ret, frame = video_capture.read()
# Обработка каждого кадра аналогично тому, как это сделано с изображениями
# ...

cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

video_capture.release()
cv2.destroyAllWindows()


- Сохранение векторов: Вы можете сохранять векторы признаков и имена в файл (например, JSON) для дальнейшего использования.

- Оптимизация: Для улучшения производительности можно уменьшать размер изображения перед распознаванием.

### Заключение

Эта шпаргалка предоставляет основные команды и примеры использования библиотеки face_recognition. Вы можете исследовать документацию для более глубокого понимания и дополнительных возможностей.

Станьте разработчиком нейро-сотрудников на Python и зарабатывайте от 150.000р в месяц 🔥🔥🔥

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

Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.

Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!

Шпаргалка по модулю configparser в Python, который позволяет работать с конфигурационными файлами в формате .ini.

### Основные функции configparser

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

configparser является стандартным модулем в Python, начиная с версии 3.x, и не требует установки.

import configparser


### Основные операции

#### 1. Создание и запись конфигурационного файла

# Создание экземпляра ConfigParser
config = configparser.ConfigParser()

# Добавление секций и параметров
config['DEFAULT'] = {
'Server': 'localhost',
'Port': '8080'
}

config['Database'] = {
'User': 'admin',
'Password': 'password'
}

# Сохранение в файл
with open('settings.ini', 'w') as configfile:
config.write(configfile)


Пример `settings.ini`:

[DEFAULT]
Server = localhost
Port = 8080

[Database]
User = admin
Password = password


#### 2. Чтение конфигурационного файла

# Создание экземпляра ConfigParser
config = configparser.ConfigParser()

# Чтение файла
config.read('settings.ini')

# Получение значений
server = config['DEFAULT']['Server']
port = config.getint('DEFAULT', 'Port')
db_user = config['Database']['User']

print(f"Server: {server}, Port: {port}, User: {db_user}")


#### 3. Изменение настроек

# Изменение значения
config['Database']['Password'] = 'new_password'

# Сохранение изменений
with open('settings.ini', 'w') as configfile:
config.write(configfile)


#### 4. Удаление секции или параметра

# Удаление параметра
config.remove_option('Database', 'Password')

# Удаление секции
config.remove_section('Database')

# Сохранение изменений
with open('settings.ini', 'w') as configfile:
config.write(configfile)


### Полезные методы ConfigParser

- Чтение:
- read(filenames): Читает конфигурацию из одного или нескольких файлов.
- read_file(file): Читает конфигурацию из файла, переданного как объект файла.

- Запись:
- write(file): Сохраняет текущую конфигурацию в файл.

- Получение значений:
- get(section, option): Получает значение параметра как строку.
- getint(section, option): Получает значение параметра как целое число.
- getfloat(section, option): Получает значение параметра как число с плавающей точкой.
- getboolean(section, option): Получает значение параметра как булевый тип.

- Изменение и удаление:
- set(section, option, value): Устанавливает значение параметра.
- remove_option(section, option): Удаляет параметр из секции.
- remove_section(section): Удаляет секцию.

- Проверка наличия:
- has_section(section): Проверяет, существует ли секция.
- has_option(section, option): Проверяет, существует ли параметр в секции.

### Пример полного использования

import configparser

# Создание и запись файла
config = configparser.ConfigParser()
config['DEFAULT'] = {'Server': 'localhost', 'Port': '8080'}
config['Database'] = {'User': 'admin', 'Password': 'password'}
with open('settings.ini', 'w') as configfile:
config.write(configfile)

# Чтение настроек
config.read('settings.ini')
print(config['Database']['User'])

# Изменение настроек
config['Database']['Password'] = 'new_password'
with open('settings.ini', 'w') as configfile:
config.write(configfile)

# Удаление параметра
config.remove_option('Database', 'Password')
with open('settings.ini', 'w') as configfile:
config.write(configfile)


### Заключение

configparser — это удобный инструмент для работы с конфигурационными файлами в формате .ini, позволяющий легко сохранять и загружать настройки для ваших приложений.

https://habr.com/ru/companies/timeweb/articles/854382/