Лимит рекурсии
В Python не поддерживается хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов. Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии.
Однако делать это слегка опасно, так как каждый новый вызов занимает достаточно много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
В Python не поддерживается хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов. Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии.
Однако делать это слегка опасно, так как каждый новый вызов занимает достаточно много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
👍1
Поиск всех HTML-элементов по названию
С помощью метода find_all мы можем найти все элементы, которые соответствуют некоторым критериям.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
С помощью метода find_all мы можем найти все элементы, которые соответствуют некоторым критериям.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
👍1
Инкремент с помощью __pos__
В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения.
При применении унарного плюса у объекта вызывается магический метод pos, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода pos. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения.
При применении унарного плюса у объекта вызывается магический метод pos, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента.
Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода pos. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
👍1
Оператор break
Оператор break используется для преждевременного выхода из цикла for. Он используется для прерывания цикла при выполнении определенного условия.
Допустим, у нас есть список чисел, и мы хотим проверить, присутствует ли число. Мы можем перебрать список чисел и, если число найдено, выйти из цикла, потому что нам не нужно продолжать перебирать оставшиеся элементы.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
Оператор break используется для преждевременного выхода из цикла for. Он используется для прерывания цикла при выполнении определенного условия.
Допустим, у нас есть список чисел, и мы хотим проверить, присутствует ли число. Мы можем перебрать список чисел и, если число найдено, выйти из цикла, потому что нам не нужно продолжать перебирать оставшиеся элементы.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
👍3
Дробные числа
По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными.
Можно использовать тип данных Decimal, который предоставит намного большую точность, но и его может не хватить в некоторых случаях.
Поэтому для идеальных вычислений лучше использовать Fraction, который представляет и хранит число в виде рациональной дроби.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными.
Можно использовать тип данных Decimal, который предоставит намного большую точность, но и его может не хватить в некоторых случаях.
Поэтому для идеальных вычислений лучше использовать Fraction, который представляет и хранит число в виде рациональной дроби.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
👍1