⚡️ Методы генераторы
В отличие от итераторов, у генераторов есть собственные методы, позволяющие контролировать их работу. Их три:
С помощью send, к слову, создают корутины — функции, которым можно передавать значения, останавливать и возобновлять работу программы.
#теория
В отличие от итераторов, у генераторов есть собственные методы, позволяющие контролировать их работу. Их три:
close
, throw
, send
.close()
— останавливает генератор на следующем проходе.throw()
— выводит ошибку на экран и останавливает выполнение генератора сразу же. С помощью них можно контролировать бесконечные генераторы.send()
— самый интересный метод. Позволяет передавать значения генератору. Первым всегда должно быть None, что бы запустить его. С помощью send, к слову, создают корутины — функции, которым можно передавать значения, останавливать и возобновлять работу программы.
#теория
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая перемножает все цифры некого числа num, пока оно не станет меньше 9. Число всегда больше нуля.
Примеры:
persist(999) -> 2
# 999 -> 9 * 9 * 9 = 729 -> 7 * 2 * 9 = 126 -> 1 * 2 * 6 = 12 -> 1 * 2 = 2
persist(1000) -> 0
persist(423) -> 8
persist(1) -> 1
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая перемножает все цифры некого числа num, пока оно не станет меньше 9. Число всегда больше нуля.
Примеры:
persist(999) -> 2
# 999 -> 9 * 9 * 9 = 729 -> 7 * 2 * 9 = 126 -> 1 * 2 * 6 = 12 -> 1 * 2 = 2
persist(1000) -> 0
persist(423) -> 8
persist(1) -> 1
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Находим стилистические ошибки
Дабы избежать конфликтов между программистами, разработчики создали соглашение под названием "PEP 8", в котором описывались правила оформления кода.
Но хранить их все в голове довольно тяжело, поэтому придумали flake8 — скрипт, что позволяет проверить программу на стилистические ошибки.
Установка:
Также вы можете задавать свои настройки — подробнее можно почитать на сайте документации.
#миниурок #flake8
Дабы избежать конфликтов между программистами, разработчики создали соглашение под названием "PEP 8", в котором описывались правила оформления кода.
Но хранить их все в голове довольно тяжело, поэтому придумали flake8 — скрипт, что позволяет проверить программу на стилистические ошибки.
Установка:
pip install flake8
Запускается скрипт довольно просто, достаточно вписать в терминал flake8 file1.py file2.py
или flake8 folder_name
.Также вы можете задавать свои настройки — подробнее можно почитать на сайте документации.
#миниурок #flake8
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Профилируем код
В этот раз мы рассмотрим профилировщик под именем py-spy, позволяющий отслеживать потребление ресурсов, не редактируя код.
Установка:
py-spy top — отображает нагрузку на процессор. Очень похожа на команду top из Unix.
py-spy record — записывает использование ресурсов в svg файл.
py-spy dump — собирает стек вызовов и выводит на консоль.
На гиф — результат работы первой команды. Если вам стало интересно, то можете посетить github страницу проекта.
#миниурок #pyspy
В этот раз мы рассмотрим профилировщик под именем py-spy, позволяющий отслеживать потребление ресурсов, не редактируя код.
Установка:
pip install py-spy
Давайте поговорим о командах, которые используются в скрипте: все они вызываются с параметром --pid.py-spy top — отображает нагрузку на процессор. Очень похожа на команду top из Unix.
py-spy record — записывает использование ресурсов в svg файл.
py-spy dump — собирает стек вызовов и выводит на консоль.
На гиф — результат работы первой команды. Если вам стало интересно, то можете посетить github страницу проекта.
#миниурок #pyspy
Что выведет код выше?
Anonymous Quiz
12%
1_000_000
16%
'1_000_000'
39%
1000000
16%
Ошибку
16%
Узнать ответ
⚡️ Бесконечные итераторы
Продолжаем рассказывать про итераторы, а если быть конкретнее, про модуль itertools. itertools — модуль, хранящий в себе множество готовых итераторов, как, например, groupby.
#миниурок #itertools
Продолжаем рассказывать про итераторы, а если быть конкретнее, про модуль itertools. itertools — модуль, хранящий в себе множество готовых итераторов, как, например, groupby.
count(start, step=1)
— итератор, считающий от start, добавляя step до бесконечности. Он чем-то напоминает range, но без ограничений.cycle(elems)
— бесконечное количество раз возвращает элементы внутри elems по порядку.repeat(elem, n)
— возвращает n раз или бесконечно значение elem.#миниурок #itertools
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая превращает строку в hashtag. У них есть парочка правил: никаких символов из string.punctuation быть не должно, пробелы отсутствуют, а длина обязана быть не более 140 символов. Если последнее правило нарушено, выбрасываем ошибку.
Примеры:
gen_hashtag('Python Community') -> #PythonCommunity
gen_hashtag('i like python community!') -> #ILikePythonCommunity
gen_hashtag('Should, I. subscribe? Yes!') -> #ShouldISubscribeYes
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая превращает строку в hashtag. У них есть парочка правил: никаких символов из string.punctuation быть не должно, пробелы отсутствуют, а длина обязана быть не более 140 символов. Если последнее правило нарушено, выбрасываем ошибку.
Примеры:
gen_hashtag('Python Community') -> #PythonCommunity
gen_hashtag('i like python community!') -> #ILikePythonCommunity
gen_hashtag('Should, I. subscribe? Yes!') -> #ShouldISubscribeYes
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Замеряем время выполнения программы
Многие новички используют time или встроенные в ОС приложения, но это не верно. Лучше использовать timeit, поскольку он может более точно рассчитать, сколько занимает выполнение кода, независимо от ОС.
Он довольно прост в использовании. Всего пару строк, и вы можете доказать, что код админа медленнее вашего решения :)
Если вам лень запускать IDE, можете воспользоваться терминалом, вписав
А если вам стало интересно, то можете посетить страницу документации.
#миниурок #timeit
Многие новички используют time или встроенные в ОС приложения, но это не верно. Лучше использовать timeit, поскольку он может более точно рассчитать, сколько занимает выполнение кода, независимо от ОС.
Он довольно прост в использовании. Всего пару строк, и вы можете доказать, что код админа медленнее вашего решения :)
timeit.timeit(code, setup='', timer, number=1_000_000)
— запускает код number раз. Но перед этим выполняет строку setup, которая не входит в время, измеряемое таймером. Эта основная функция больше вам не понадобится.Если вам лень запускать IDE, можете воспользоваться терминалом, вписав
python3 -m timeit "print('Hello world')"
.А если вам стало интересно, то можете посетить страницу документации.
#миниурок #timeit
Что выведет код выше?
Anonymous Quiz
25%
True
12%
False
27%
Программа уйдёт в бесконечный цикл
17%
Ошибку
18%
узнать ответ
3 причины подписаться на аккаунт @selectel 🔥
1. Основы программирования простым языком и без снобизма.
2. Полезные факты о железе, дата-центрах и хостингах.
3. Актуальные новости из IT.
Жми «Подписаться», чтобы получать больше IT-материалов и каждый день узнавать что-то новое!
1. Основы программирования простым языком и без снобизма.
2. Полезные факты о железе, дата-центрах и хостингах.
3. Актуальные новости из IT.
Жми «Подписаться», чтобы получать больше IT-материалов и каждый день узнавать что-то новое!