آخرین پست‌های Python для новичков (@pythonvideo) در تلگرام

پست‌های تلگرام Python для новичков

Python для новичков
Админ: @solkogan
Купить рекламу: https://telega.in/c/pythonvideo
6,417 مشترک
255 عکس
15 ویدیو
آخرین به‌روزرسانی 27.02.2025 08:32

کانال‌های مشابه

IT Архив
5,762 مشترک
Marat AI
3,775 مشترک

آخرین محتوای به اشتراک گذاشته شده توسط Python для новичков در تلگرام


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

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/