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 раза
Python для новичков टेलीग्राम पोस्ट

Админ: @solkogan
Купить рекламу: https://telega.in/c/pythonvideo
Купить рекламу: https://telega.in/c/pythonvideo
6,417 सदस्य
255 तस्वीरें
15 वीडियो
अंतिम अपडेट 27.02.2025 08:32
समान चैनल

14,393 सदस्य

9,251 सदस्य

1,316 सदस्य
Python для новичков द्वारा टेलीग्राम पर साझा की गई नवीनतम सामग्री
Декораторы могут принимать параметры, что позволяет создавать более гибкие декораторы. Например:
Подписывайтесь, будет много интересного )
👇👇👇
https://t.me/info_sol
👆👆👆
👇👇👇
https://t.me/info_sol
👆👆👆
Использование contextlib.suppress для игнорирования исключений
Это позволяет писать код более лаконично:
Это позволяет писать код более лаконично:
from contextlib import suppress
with suppress(FileNotFoundError):
with open("file.txt", "r") as file:
content = file.read()
🔵 Практический интенсив «Python-разработчик: основы за 2 дня» — 20-21 ноября в 19:00 мск.
О перспективах направления Python и многом другом расскажет Рафаэль Мухаметшин, Middle Бэкенд-разработчик в «ПИК Digital» с опытом в разработке более 3 лет.
На вебинаре вы:
☑️ Самостоятельно напишете Telegram-бота с карточными мини-играми.
☑️ Познакомитесь с синтаксисом языка и сферами его применения.
☑️ Поймете как продолжить обучение, какие навыки потребуются, чтобы стать backend-разработчиком на Python.
☑️ Узнаете, чего ждут работодатели от junior-разработчиков и что делать, чтобы найти работу без опыта.
🎁 Приятные бонусы: полезный гайд для начинающего Python-разработчика и гайд о сленге в IT всем участникам интенсива!
О перспективах направления Python и многом другом расскажет Рафаэль Мухаметшин, Middle Бэкенд-разработчик в «ПИК Digital» с опытом в разработке более 3 лет.
На вебинаре вы:
☑️ Самостоятельно напишете Telegram-бота с карточными мини-играми.
☑️ Познакомитесь с синтаксисом языка и сферами его применения.
☑️ Поймете как продолжить обучение, какие навыки потребуются, чтобы стать backend-разработчиком на Python.
☑️ Узнаете, чего ждут работодатели от junior-разработчиков и что делать, чтобы найти работу без опыта.
🎁 Приятные бонусы: полезный гайд для начинающего Python-разработчика и гайд о сленге в IT всем участникам интенсива!
Вот несколько неочевидных лайфхаков для программирования на Python, которые могут значительно упростить вашу работу:
### 1. Использование
Когда вам нужно итерироваться по элементам списка и получать их индексы, используйте
### 2. Списковые включения для фильтрации
Используйте списковые включения (list comprehensions) для создания списков на основе существующих, с возможностью фильтрации:
### 3. Использование
Функция
### 4.
Используйте
### 5.
Используйте
### 6. Использование
Если вы часто работаете с словарями и хотите избежать ошибок при добавлении значений, используйте
### 7. Генераторы для работы с большими данными
Используйте генераторы для работы с большими объемами данных, чтобы избежать излишнего расхода памяти:
### 8.
Используйте множество (
### 9. Использование
Модуль
### 10. Печать отладочной информации с помощью
Используйте модуль
### 11. Используйте
### 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.")
Шпаргалка по библиотеке
### Установка
Убедитесь, что у вас установлены следующие зависимости:
Если у вас возникают проблемы с установкой, убедитесь, что у вас также установлены
### Импорт библиотеки
### Основные функции
1. Загрузка изображений
- Загрузка изображения из файла:
2. Обнаружение лиц
- Получение расположения лиц на изображении:
3. Извлечение признаков лиц
- Получение векторов признаков для каждого обнаруженного лица:
4. Сравнение лиц
- Сравнение векторов признаков для определения, совпадают ли лица:
5. Определение имен лиц
- Определение имени на основе векторов признаков:
### Пример использования
#### Полный пример распознавания лиц на изображении
### Полезные советы
- Работа с видео: Чтобы распознавать лица в реальном времени, вы можете использовать библиотеку OpenCV для захвата видео с веб-камеры:
- Сохранение векторов: Вы можете сохранять векторы признаков и имена в файл (например, JSON) для дальнейшего использования.
- Оптимизация: Для улучшения производительности можно уменьшать размер изображения перед распознаванием.
### Заключение
Эта шпаргалка предоставляет основные команды и примеры использования библиотеки
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 разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!
Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.
Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!
Шпаргалка по модулю
### Основные функции
#### Установка
### Основные операции
#### 1. Создание и запись конфигурационного файла
Пример `settings.ini`:
#### 2. Чтение конфигурационного файла
#### 3. Изменение настроек
#### 4. Удаление секции или параметра
### Полезные методы
- Чтение:
-
-
- Запись:
-
- Получение значений:
-
-
-
-
- Изменение и удаление:
-
-
-
- Проверка наличия:
-
-
### Пример полного использования
### Заключение
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
, позволяющий легко сохранять и загружать настройки для ваших приложений.