Эта шпаргалка содержит основные методы работы со словарями в 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
Контекстные менеджеры являются хорошим инструментом для управления файлами, сетевыми соединениями и другими объектами, мы разберем простейшие способы их использования.
1. Стандартный пример с with: позволяет безопасно открыть и закрыть файл, даже если в блоке возникнет ошибка:
with open('file.txt', 'r') as file:
data = file.read()
2. Создание своего контекстного менеджера: определив enter и exit методы. Это полезно, например, для измерения времени выполнения:
class Timer:
def __enter__(self):
self.start = time.time()
def __exit__(self, exc_type, exc_value, traceback):
print(f"Время выполнения: {time.time() - self.start:.4f} сек")
3. Использование contextmanager: модуль contextlib позволяет создавать контекстные менеджеры проще, например, для работы с файлами:
@contextmanager
def open_file(path, mode):
file = open(path, mode)
try:
yield file
finally:
file.close()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7
📖 Python для сложных задач
⬇️ Скачать книгу
👉 Python Ready | #книга
Подробное руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки
Автор: Дж. Вандер Плас
Год: 2018
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
В этой статье:
• Вы познакомитесь с библиотекой Pymem, которая управляет памятью Windows а так же узнаете, как с её помощью взломать игру.
🔊 Если понравилось, можешь продолжить читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥6
Мы рассмотрели основные способы работы с JSON, что позволяет эффективно взаимодействовать с данными:
• Загрузка JSON из файла
• Преобразование объекта Python в JSON
• Запись JSON в файл
Эти методы важны для работы с внешними API и обмена данными.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍29🤝16
В этой шпаргалке собраны все самые важные методы для работы со списками, которые помогут вам управлять данными списков без проблем.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🤝20🔥19
This media is not supported in your browser
VIEW IN TELEGRAM
Stepik — это обучающая платформа, которая предоставляет онлайн-курсы и интерактивные задания по программированию
📌 Ссылочка: stepik.org
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍4
Работа со ссылками на изменяемые объекты в Python может быть настоящей ловушкой. Например, если передать изменяемый объект в функцию, любые изменения внутри функции повлияют на оригинал — даже если вы этого не планировали.
Рассмотрим на примере передачи списка:
def add_element(data, element):
data.append(element)
my_list = [1, 2, 3]
add_element(my_list, 4)
print(my_list) # Вывод: [1, 2, 3, 4]
Хотя функция
add_element
не возвращает результат, изменения отражаются в my_list
. Это происходит потому, что список передается по ссылке.Чтобы избежать нежелательных изменений, можно создать копию объекта:
def add_element(data, element):
data = data.copy()
data.append(element)
my_list = [1, 2, 3]
add_element(my_list, 4)
print(my_list) # Вывод: [1, 2, 3]
Теперь
my_list
остается неизменным. Это позволяет избежать случайных ошибок в сложных проектах, где важно контролировать состояние данных.А как вы считаете, насколько важно следить за ссылками при передаче данных?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥12🤝3