В этом посте рассмотрим различные варианты группировки с помощью прекрасного модуля itertools, который включает в себя множество полезных инструментов:
- Группировка чисел по четности
- Группировка строк по длине
- Группировка элементов с одинаковыми значениями
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35👍3🤝3👎1
В этой статье:
• Создание Окна
• Спрайты
• Игровая физика
🔊 Продолжить читать можешь на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥7🤝2
Ошибки с изменяемыми аргументами в функциях
Сегодня разберем малоизвестную ловушку в Python, связанную с изменяемыми аргументами в функциях. Эта особенность часто приводит к неожиданным багам.
В Python значения по умолчанию для аргументов функций создаются один раз при определении функции, а не при каждом вызове:
Происходит это из-за того что аргумент
Чтобы избежать этого используем None как значение по умолчанию и создаем новый объект внутри функции:
🔥 Такие простые изменения помогут вам избежать непредсказуемого поведения функций
👉 Python Ready | #практика
Сегодня разберем малоизвестную ловушку в Python, связанную с изменяемыми аргументами в функциях. Эта особенность часто приводит к неожиданным багам.
В Python значения по умолчанию для аргументов функций создаются один раз при определении функции, а не при каждом вызове:
def append_to_list(item, my_list=[]):
my_list.append(item)
return my_list
print(append_to_list(1)) # [1]
print(append_to_list(2)) # [1, 2]
Происходит это из-за того что аргумент
my_list
ссылается на один и тот же объект (список), а не создается заново. Чтобы избежать этого используем None как значение по умолчанию и создаем новый объект внутри функции:
def append_to_list(item, my_list=None):
if my_list is None:
my_list = []
my_list.append(item)
return my_list
print(append_to_list(1)) # [1]
print(append_to_list(2)) # [2]
🔥 Такие простые изменения помогут вам избежать непредсказуемого поведения функций
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥9🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Python Education — бесплатный курс от Яндекса по основам Python, в котором вы изучите базу, а так же познакомитесь с популярными библиотеками.
⛓ Ссылочка: education.yandex
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7🤝4
В этом посте мы рассмотрели три способа работы с несколькими возвращаемыми значениями. Также вы узнаете про:
- Возвращение через кортеж
- Возвращение через словарь
- Создание именованного кортежа
- Использование именованного кортежа
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37🤝22👍10
📖 Занимайся хакингом как легенда
⬇️ Скачать книгу
👉 Python Ready | #книга
Читатель познакомится с различными инструментами и техниками, которые используют хакеры для тестирования безопасности
Автор: Спарс Флоу
Год издания: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2🤝1
👍12🔥8😁4
Ошибки при сравнении объектов с разными типами
Разберем коварную ловушку Python — поведение операторов сравнения при работе с объектами разных типов. Это может стать источником неожиданных ошибок в коде:
Когда вы сравниваете значения с
В старых версиях Python (
Решение: Явная проверка на None
Чтобы избежать ошибок, всегда сравнивайте с
Сравнение объектов разных типов иногда работает, но результат может быть нелогичным:
🔥 Используйте is для проверки на None, избегайте операторов < и > для объектов разных типов, чтобы исключить непредсказуемые ошибки.
👉 Python Ready | #практика
Разберем коварную ловушку Python — поведение операторов сравнения при работе с объектами разных типов. Это может стать источником неожиданных ошибок в коде:
Когда вы сравниваете значения с
None
или между собой, Python иногда ведет себя иначе, чем вы ожидаете:print(5 > None) # TypeError: '>' not supported between instances of 'int' and 'NoneType'
В старых версиях Python (
2.x
) подобные операции могли возвращать результат, но в Python 3 они выбрасывают ошибку. Однако есть еще подводные камни: print(None == 0) # False
print(None < 1) # TypeError
Решение: Явная проверка на None
Чтобы избежать ошибок, всегда сравнивайте с
None
через оператор is
: value = None
if value is None:
print("Value is None") # Безопасная проверка
Сравнение объектов разных типов иногда работает, но результат может быть нелогичным:
print([1, 2] > "abc") # TypeError в Python 3
🔥 Используйте is для проверки на None, избегайте операторов < и > для объектов разных типов, чтобы исключить непредсказуемые ошибки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥6🤝4