Генераторы в Python позволяют возвращать значения по одному за раз, что экономит память при работе с большими наборами данных.
Это особенно полезно, когда обработка данных возможна поэтапно, без их полного хранения в памяти.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥56🤝19👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Datacamp — платформа для изучения языка Python и баз данных SQL. На сайте есть много практических заданий, которые можно решать во встроенном редакторе, где есть нейросеть, указывающая на ошибки в коде.
⛓ Ссылочка: https://app.datacamp.com/learn/courses
👉 Python Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6
Шпаргалка по основным функциям модуля itertools, которые позволяют работать с итерируемыми объектами, облегчая задачи вроде создания комбинаций, обработки потоков данных и упрощения сложных вычислений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48👍6🤝5
@property
используется для превращения метода класса в свойство, которое можно вызывать без скобок. Это позволяет обращаться к методам класса, как к атрибутам, что делает код более читабельным и интуитивно понятным.Он особенно полезен, когда вам нужно контролировать доступ к атрибутам объекта или выполнять вычисления при получении значения, но при этом не хотите изменять синтаксис вызова.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53🤝8👍6
Суть:
Магические методы делают ваши пользовательские классы в Python мощными и гибкими, позволяя им перегружать стандартные операции и вести себя как базовые типы данных.
1. Определение класса с __init__ и __repr__
Магические методы init и repr помогают задавать значения свойств объекта при его создании и форматируют вывод.
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"Point({self.x}, {self.y})"
2. Перегрузка оператора сложения с помощью __add__
С помощью метода add вы можете определить, как экземпляры класса будут складываться.
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
Теперь вы можете складывать два объекта Point:
Point(2, 3) + Point(1, 2) # вернет Point(3, 5)
3. Поддержка функций len() и str()
Метод len позволяет использовать функцию len() на вашем объекте, а str дает строковое представление объекта.
class Text:
def __init__(self, content):
self.content = content
def __len__(self):
return len(self.content)
def __str__(self):
return f"'{self.content}' with length {len(self.content)}"
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍13🤝3
📖 Алгоритмы на практике
⬇️ Cкачать книгу
👉 Python Ready | #книга
Руководство по эффективному применению алгоритмов для решения реальных задач, с акцентом на практические примеры и оптимизацию кода.
Год: 2023
Автор: Зингаро Даниэль
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍6🤝3
Когда речь заходит о копировании объектов в Python, важно понимать разницу между shallow и deep copy.
Shallow copy создает только поверхностную копию, что означает, что вложенные объекты остаются связанными с оригиналом, тогда как deep copy создает независимую копию всего объекта, включая вложенные структуры.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27🤝13👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Rio — это простой в использовании фреймворк для создания веб-сайтов и приложений, полностью основанный на Python. Вам не понадобится ни строчки HTML, CSS или JavaScript, чтобы создать красивые и современные приложения.
⛓ Ссылочка: https://rio.dev/
👉 Python Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍10
Эта шпаргалка содержит основные методы работы со словарями в Python, которые упрощают манипуляции с данными, позволяя легко добавлять, изменять и извлекать значения по ключам.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥27🤝9
Сегодня мы рассмотрим использование assert и чего нужно предостерегаться. По сути данная инструкция представляет из себя что-то типа средства отладки, которое проверяет условие, если условие истинно, то программа работает дальше, если ложно, то вызывается исключение AssertionError с необязательным исключением
Простой пример использования assert:
def apply_discount(product, discount):
price = int(product['цена'] * (1.0 — discount))
assert 0 <= price <= product['цена']
return price
Здесь инструкция нам гарантирует, что новая цена не будет отрицательной и не будет выше прежней, можем в этом убедиться:
shoes = {'name': 'Snicker', 'price': 14900}
apply_discount(shoes, 0.25)
11175
Если мы применим 200% скидку, то сработает исключение:
apply_discount(shoes, 2.0)
Traceback (most recent call last):
File "<input>", line 1, in <module>
apply_discount(prod, 2.0)
File "<input>", line 4, in apply_discount
assert 0 <= price <= product['price']
AssertionError
Ловушка проверки валидности:
Так почему нам просто не проверять все инструкцией assert и забить болт на другие методы проверки?
Давайте рассмотрим следующий пример:
def delete_product(prod_id, user):
assert user.is_admin(), 'здесь должен быть админ'
assert store.has_product(prod_id), 'неизвестный товар'
store.get_product(prod_id).delete()
С первого взгляда все понятно, assert проверяет истинность условий и в случае ложного результата вызывает исключение, НО, утверждения в Python могут быть глобально отключены, это значит, что наши инструкции будут превращены в нулевые операции
Нулевая операция (null-operation) - операция, которая не возвращает данных и оставляет состояние программы без изменений.
К чему может привести обнуление операций? Как написано выше, инструкция просто не вернет вам ответ, за счет чего интерпретатор просто пройдет "мимо" вашей инструкции и в данном случае любой пользователь получит права админа
Жми 🔥 если понравился пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍4👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Cursor AI — нейросеть для разработки, представляющая собой интеллектуальный редактор кода, который помогает за счет подсказок, автоматизации и интеграции с расширениями VS Code.
📌 Ссылочка: https://www.cursor.com/
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥10