• Эксперимент: даём ChatGPT полный доступ к компьютеру
• Правильный путь создания python-библиотеки: от создания до публикации
• Вычисления с GPU-ускорением на Python
• Полное руководство по обработке ошибок в Python
• Как мы обучили Mistral 7B русскому языку и адаптировали для объявлений Авито
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Генераторные выражения — это компактный способ создания итераторов в Python. Они похожи на списковые выражения (list comprehensions), но возвращают по одному элементу за раз, а не создают сразу весь список. Это делает их более эффективными по памяти, особенно для обработки больших объемов данных.
# Списковое выражение — создает весь список в памяти
squared_list = [x**2 for x in range(10)]
print(squared_list) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# Генераторное выражение — возвращает по одному значению
squared_gen = (x**2 for x in range(10))
print(next(squared_gen)) # 0
print(next(squared_gen)) # 1
🗣 Генераторные выражения экономят память и могут использоваться для последовательной обработки данных, где полный список не нужен.
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашёл элегантное решение проблемы, а через полгода снова столкнулся с такой же задачей и не помнишь, как её решал?
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает список словарей и фильтрует его, возвращая только те словари, в которых значение указанного ключа превышает заданное значение.
Пример:
data = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 20},
{"name": "Diana", "age": 35}
]
result = filter_by_key(data, "age", 25)
print(result)
# Ожидаемый результат:
# [
# {"name": "Bob", "age": 30},
# {"name": "Diana", "age": 35}
# ]
Решение задачи
def filter_by_key(data, key, threshold):
return [item for item in data if item.get(key, 0) > threshold]
# Пример использования:
data = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 20},
{"name": "Diana", "age": 35}
]
result = filter_by_key(data, "age", 25)
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
В Python менеджеры контекста используются для управления ресурсами, такими как файлы или сетевые соединения, автоматически освобождая их после использования. Они реализуются с помощью методов
__enter__
и __exit__
.with open('file.txt', 'r') as file:
content = file.read()
Здесь файл автоматически закроется после завершения блока
with
, даже если внутри него возникнет ошибка.🗣️ Менеджеры контекста полезны для автоматического управления ресурсами и обработки исключений.
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается, как настроить автоматический деплой Telegram-бота на сервер с использованием GitHub Actions. Это поможет ускорить обновление кода и минимизировать ошибки при ручной загрузке.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В 2010 году пользователь Stack Overflow не справился с задачей на собеседовании. Обсуждение способов решения этого задания стало одной из самых популярных тем на платформе.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте Python-скрипт, который кэширует данные с внешнего API, сохраняя их на определенное время. Когда срок кэша истекает, данные должны автоматически обновляться при следующем запросе.
•
python app.py fetch
— получает данные из кэша, а если кэш истек, то заново запрашивает данные и обновляет кэш.Решение задачи
import time
import json
import requests
from pathlib import Path
CACHE_FILE = Path("cache.json")
CACHE_TTL = 60 # время жизни кэша в секундах
def update_cache():
data = requests.get("https://api.example.com/data ").json()
cache_data = {"data": data, "timestamp": time.time()}
with open(CACHE_FILE, "w") as file:
json.dump(cache_data, file)
return data
def fetch_data():
if CACHE_FILE.exists():
with open(CACHE_FILE, "r") as file:
cache = json.load(file)
if time.time() - cache["timestamp"] < CACHE_TTL:
print("Данные из кэша:", cache["data"])
return cache["data"]
print("Обновление кэша...")
return update_cache()
# Запрос кэшированных данных
fetch_data()
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня поговорим о объектах, объектной архитектуре и способах взаимодействия с ними на примере языков программирования Python и JavaScript. Получилось небольшое исследование, противопоставляющее прототипирование и ООП.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀Нужны качественные ноды для работы?
📌У нас лучшие цены на рынке!
📌Безлимитные запросы!
📌Выделенные ноды от 87$
📌Shared - 50$ за 1шт
📌Работайте с комфортом!
Бот для покупки лучших нод - @Flash_Node_bot
Контакт поддежки - https://t.iss.one/Flash_Node_support
Если нужной ноды не нашлось в нашем боте - напишите в поддержку мы установим ее для вас
Напишите в поддержку что вы от "xCode" и получите 30% скидку на первый заказ!
📌У нас лучшие цены на рынке!
📌Безлимитные запросы!
📌Выделенные ноды от 87$
📌Shared - 50$ за 1шт
📌Работайте с комфортом!
Бот для покупки лучших нод - @Flash_Node_bot
Контакт поддежки - https://t.iss.one/Flash_Node_support
Если нужной ноды не нашлось в нашем боте - напишите в поддержку мы установим ее для вас
Расскажем, как превратить Django в генератор статических сайтов и сделать полноценный блог с пагинацией, сортировкой записей по тегам, подсветкой синтаксиса кода, контактной формой, подпиской на рассылку и поддержкой 20 различных тем оформления.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
@property
в Python и зачем он нужен?Декоратор
@property
в Python превращает метод класса в атрибут, позволяя работать с ним, как с обычным свойством. Это упрощает доступ к приватным данным и добавляет контроль за их валидацией и изменением.С помощью
@property
можно создавать интерфейс для работы с данными объекта, защищая их от некорректных значений и обеспечивая читаемость кода.@property
используется для создания свойства age
, которое проверяет корректность введенного значения:class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if value < 0:
raise ValueError("Возраст не может быть отрицательным.")
self._age = value
p = Person(30)
p.age = 35 # Работает нормально
print(p.age) # 35
p.age = -5 # ValueError: Возраст не может быть отрицательным.
🗣 Использование @property полезно для создания аккуратного интерфейса доступа к данным с их защитой и валидацией, соблюдая при этом принципы инкапсуляции.
Please open Telegram to view this post
VIEW IN TELEGRAM