Что выведет код выше?
Anonymous Quiz
26%
<class 'NoneType'>
51%
<class 'tuple'>
5%
<class 'int'>
12%
Ошибку
6%
Узнать ответ
⚡️ Создаём дескрипторы
Дескрипторы — это объекты, позволяющие изменить отображение, хранение и удаление атрибутов
Начать стоит с того, что дескрипторы это всегда атрибуты класса, которые имеют в себе методы
Использовать их можно, например, для создания логов, во время изменения переменной, создания проверочного класса и множества других вариантов.
Дескрипторы имеют более обширный функционал и описать их в одном посте невозможно, поэтому подробнее — на сайте документации.
#теория
Дескрипторы — это объекты, позволяющие изменить отображение, хранение и удаление атрибутов
Начать стоит с того, что дескрипторы это всегда атрибуты класса, которые имеют в себе методы
__get__
, __set__
или __del__
, которые вызываются в зависимости от использования атрибута.Использовать их можно, например, для создания логов, во время изменения переменной, создания проверочного класса и множества других вариантов.
Дескрипторы имеют более обширный функционал и описать их в одном посте невозможно, поэтому подробнее — на сайте документации.
#теория
⚡️ Задачка с собеседования | #Easy, #Hard
Условие:
Ваша задача — написать функцию, которая переворачивает список на k шагов. Она ничего не возвращает, а лишь изменяет полученный список.
k — всегда позитивное число, а размер списка всегда больше нуля.
Задача кажется простой, но её основная сложность, что необходимо найти максимально быстрый способ решения задачи. Поэтому тут 2 тега :)
Пример:
rotate([1,2,3,4,5,6,7], 3) -> [5,6,7,1,2,3,4]
rotate([-1,-100,3,99], 2) -> [3,99,-1,-100]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая переворачивает список на k шагов. Она ничего не возвращает, а лишь изменяет полученный список.
k — всегда позитивное число, а размер списка всегда больше нуля.
Задача кажется простой, но её основная сложность, что необходимо найти максимально быстрый способ решения задачи. Поэтому тут 2 тега :)
Пример:
rotate([1,2,3,4,5,6,7], 3) -> [5,6,7,1,2,3,4]
rotate([-1,-100,3,99], 2) -> [3,99,-1,-100]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Проверяем динамическую аннотацию
mypy — скрипт, проверяющий статически заданные типы. Таким образом, mypy позволяет избежать множество багов, связанных с типами.
Установка:
Запускается скрипт командой из терминала:
Учтите, что проверка типов может не пригодится в маленьких проектах, но в больших поможет сохранить несколько часов дебага.
#миниурок #mypy
mypy — скрипт, проверяющий статически заданные типы. Таким образом, mypy позволяет избежать множество багов, связанных с типами.
Установка:
pip install mypy
Скрипт поддерживает множество типов python, от простых int, bool, до типов из модуля typing.Запускается скрипт командой из терминала:
mypy script.py
. После этого, вы получите оповещение об ошибке в неправильном типе передаваемого аргумента.Учтите, что проверка типов может не пригодится в маленьких проектах, но в больших поможет сохранить несколько часов дебага.
#миниурок #mypy
⚡️ Профилируем код
cProfile — предустановленный модуль, позволяющий отслеживать время выполнения кода и количество вызовов функции.
Запустить код можно с помощью
Если же вы будете запускать профилировщик из кода, то сможете самостоятельно контролировать вывод статистике, но об этом подробно на сайте документации.
#миниурок #cProfile
cProfile — предустановленный модуль, позволяющий отслеживать время выполнения кода и количество вызовов функции.
Запустить код можно с помощью
cProfile.run(command)
или, через терминал, изучить весь файл: python -m cProfile script.py
После выполнения вы увидите результат, как на фото выше. Если же вы будете запускать профилировщик из кода, то сможете самостоятельно контролировать вывод статистике, но об этом подробно на сайте документации.
#миниурок #cProfile
⚡️ Задачка с собеседования | #Medium, #Hard
Условие:
Ваша задача — написать функцию, которая принимает два аргумента: список и число. Ваша задача — самым быстрым путём найти в списке 2 числа, которые в сумме будут вторым аргументом. Функция возвращает список с индексами этих цифр.
Входные данные всегда будут правильные, всегда будет только одно решение.
Пример:
two_sum([2, 7, 11, 15], 9) -> [0, 1]
two_sum([3, 2, 4], 6) -> [1, 2]
two_sum([0, 4, 3, 0], 0) -> [0, 3]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая принимает два аргумента: список и число. Ваша задача — самым быстрым путём найти в списке 2 числа, которые в сумме будут вторым аргументом. Функция возвращает список с индексами этих цифр.
Входные данные всегда будут правильные, всегда будет только одно решение.
Пример:
two_sum([2, 7, 11, 15], 9) -> [0, 1]
two_sum([3, 2, 4], 6) -> [1, 2]
two_sum([0, 4, 3, 0], 0) -> [0, 3]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Какой у вас уровень в программировании?
Anonymous Poll
77%
Только учусь
17%
Junior
4%
Middle
2%
Senior
Канал, который научит тебя писать действительно качественный код!
На канале Clean Code публикуются рекомендации по написанию и улучшению кода, обзоры распространенных ошибок, инструменты и литература.
Если ты хочешь начать писать код чище — вступай в клуб профессионалов.
На канале Clean Code публикуются рекомендации по написанию и улучшению кода, обзоры распространенных ошибок, инструменты и литература.
Если ты хочешь начать писать код чище — вступай в клуб профессионалов.
⚡️ Интерактивный интерпретатор IPython
Одной из самых классных вещей в Python является интерактивный интерпретатор, позволяющий тестировать возможности языка. Но порой его функционала может не хватать и на помощь приходит IPython.
Установка:
Например, есть команда %run, которая запускает скрипт, или, %timeit, позволяющая измерить выполнение кода.
О возможностях модуля можно рассказывать долго, он очень сильно упрощает и ускоряет работу в интерпретаторе. Поэтому, советую изучить его поподробнее на сайте документации.
#миниурок #IPython
Одной из самых классных вещей в Python является интерактивный интерпретатор, позволяющий тестировать возможности языка. Но порой его функционала может не хватать и на помощь приходит IPython.
Установка:
pip install ipython
Помимо того, что это тот же самый шелл языка Python, с ним ещё приятнее работать, поскольку в нём есть автозаполнение, подсветка синстаксиса, автоматическая расстановка отступов и собственные функции.Например, есть команда %run, которая запускает скрипт, или, %timeit, позволяющая измерить выполнение кода.
О возможностях модуля можно рассказывать долго, он очень сильно упрощает и ускоряет работу в интерпретаторе. Поэтому, советую изучить его поподробнее на сайте документации.
#миниурок #IPython
⚡️ Делаем подсветку кода
Pygments — модуль, создающий универсальный вывод кода, отлично подходящий для форумов, вики сайтов и хостингов кода.
Установка:
Также модуль может использоваться из командной строки, например:
#миниурок #pygmentize
Pygments — модуль, создающий универсальный вывод кода, отлично подходящий для форумов, вики сайтов и хостингов кода.
Установка:
pip install Pygments
Эта библиотека поддерживает около 500 различных языков и переводит их в HTML, RTF, LaTeX форматы, что позволяет изображать свой код на различных сайтах, не прибегая к изображениям.Также модуль может использоваться из командной строки, например:
pygmentize test.py
. Кроме того, вы можете изменить конфигурации, но об этом подробно написано тут.#миниурок #pygmentize
⚡️ Интерактивный интерпретатор IPython. Часть 2
IPython — гораздо более удобный интерпретатор для шелла Python. О нём и его особенностях мы рассказывали ранее. В этот раз поговорим о его командах:
Знак вопроса (?) после переменной выдаст информацию о ней. Тип, несколько данных относительно объекта и строку документации.
%pip — запускает pip из интерпретатора и выполняет переданные команды.
%run — запускает python файл. Принимает аргументы, расписанные тут.
%autocall — задаёт режим запуска команды. При значении 0 будет выводить функцию как строку, а при 2 — запускать команду с значениями по умолчанию.
Подробнее все команды можно изучить здесь.
#миниурок #IPython
IPython — гораздо более удобный интерпретатор для шелла Python. О нём и его особенностях мы рассказывали ранее. В этот раз поговорим о его командах:
Знак вопроса (?) после переменной выдаст информацию о ней. Тип, несколько данных относительно объекта и строку документации.
%pip — запускает pip из интерпретатора и выполняет переданные команды.
%run — запускает python файл. Принимает аргументы, расписанные тут.
%autocall — задаёт режим запуска команды. При значении 0 будет выводить функцию как строку, а при 2 — запускать команду с значениями по умолчанию.
Подробнее все команды можно изучить здесь.
#миниурок #IPython
⚡️ Задачка с собеседования | #Medium, #Hard
Условие:
Ваша задача — написать функцию, которая перемещает все нули в конец списка. Функция принимает список с набором цифр, а ваша задача — изменить его так, что бы нули оказались в конце списка. Она ничего не возвращает, а лишь меняет полученный список. Порядок ненулевых чисел должен сохранится.
Сложность задачи заключается в том, что бы придумать самое быстрое решение.
Пример:
move_zeroes([0, 1, 0, 3, 12]) -> [1, 3, 12, 0, 0]
move_zeroes([0]) -> [0]
move_zeroes([1, 0, 3, 0, 0, 0, 5]) -> [1, 3, 5, 0, 0, 0, 0]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая перемещает все нули в конец списка. Функция принимает список с набором цифр, а ваша задача — изменить его так, что бы нули оказались в конце списка. Она ничего не возвращает, а лишь меняет полученный список. Порядок ненулевых чисел должен сохранится.
Сложность задачи заключается в том, что бы придумать самое быстрое решение.
Пример:
move_zeroes([0, 1, 0, 3, 12]) -> [1, 3, 12, 0, 0]
move_zeroes([0]) -> [0]
move_zeroes([1, 0, 3, 0, 0, 0, 5]) -> [1, 3, 5, 0, 0, 0, 0]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования