Как писать чистый код на Python?
Python — один из наиболее элегантных и чистых языков программирования. Но красивый и чистый синтаксис не означает чистый код.
Бьерн Страуструп, создатель C++, говорит, что чистый код должен быть красивым и эффективным. Логика должна быть понятной, зависимостей как можно меньше, а производительность — приближена к оптимальной.
Годная заметка, в которой показывают, как реализовать это всё на Python: https://pythonist.ru/kak-pisat-chistyj-kod-na-python/
Python — один из наиболее элегантных и чистых языков программирования. Но красивый и чистый синтаксис не означает чистый код.
Бьерн Страуструп, создатель C++, говорит, что чистый код должен быть красивым и эффективным. Логика должна быть понятной, зависимостей как можно меньше, а производительность — приближена к оптимальной.
Годная заметка, в которой показывают, как реализовать это всё на Python: https://pythonist.ru/kak-pisat-chistyj-kod-na-python/
🔥8👍3
Forwarded from Python: задачки и вопросы
Функция-декоратор — это ...
Anonymous Quiz
83%
функция, оборачивающая другую функцию. Используется для расширения её функциональности
10%
функция, необходимая для улучшения читаемости кода. Не влияет на его функционал явным образом
4%
функция, задающая внешний вид приложения/веб-приложения
2%
ничего из вышеперечисленного
👍14🔥4❤1
Forwarded from Python: задачки и вопросы
Ответ:
Функция-декоратор
— это функция, которая оборачивает другую функцию. В разработке она используется для расширения обёрнутой функции🔥23👍3
Самые популярные вопросы на собеседовании: «Что такое декоратор?»
Этот вопрос, пожалуй, встречается на каждом собеседовании. Вообще декораторы — тема большая и как-нибудь обязательно найду хороший материал, чтобы раскрыть её шире. Но а пока давайте базово разберёмся в этом вопросе.
Если вкратце, декоратор позволяет добавить новую функциональность к существующей функции. Это делается так. Функция передаётся декоратору, а он выполняет и существующий и дополнительный код. Для примера напишем декоратор, который записывает в журнал вызовы другой функции.
Напишем функцию декоратора
В качестве аргумента он принимает функцию
Напишем другие функции, к которым позже добавим декоратор:
Теперь добавим декоратор к эти двум функциям:
Теперь легко добавить ведение журнала в любую функцию, которую мы пишем. Достаточно написать перед ней
#собеседование
Этот вопрос, пожалуй, встречается на каждом собеседовании. Вообще декораторы — тема большая и как-нибудь обязательно найду хороший материал, чтобы раскрыть её шире. Но а пока давайте базово разберёмся в этом вопросе.
Если вкратце, декоратор позволяет добавить новую функциональность к существующей функции. Это делается так. Функция передаётся декоратору, а он выполняет и существующий и дополнительный код. Для примера напишем декоратор, который записывает в журнал вызовы другой функции.
Напишем функцию декоратора
В качестве аргумента он принимает функцию
func
. Декоратор определяет функцию log_function_called
, которая вызывает func()
и выполняет код print(f'{func} called.')
. А затем возвращает определенную им функцию:def logging(func):
def log_function_called():
print(f'{func} called.')
func()
return log_function_called
Напишем другие функции, к которым позже добавим декоратор:
def my_name():
print('chris')
def friends_name():
print('naruto')
my_name() #=> chris
friends_name() #=> naruto
Теперь добавим декоратор к эти двум функциям:
@logging
def my_name():
print('chris')
@logging
def friends_name():
print('naruto')
my_name()
#=> <function my_name at 0x10fca5a60> called.
#=> chris
friends_name()
#=> <function friends_name at 0x10fca5f28> called.
#=> naruto
Теперь легко добавить ведение журнала в любую функцию, которую мы пишем. Достаточно написать перед ней
@logging
.#собеседование
👍26👎1🔥1💩1
Первый взгляд на Arduino Lab for MicroPython и сравнение с Thonny IDE
В ноябре 2022 года Arduino объявили, что MicroPython стал частью их экосистемы. Вместе с этим разработчики выпустили новую IDE — Arduino Lab for MicroPython. Но чем она лучше той же Thonny, которую до сих пор используют для программирования микроконтроллеров на Python?
Если работаете или планируете работать с Arduino, вот небольшая заметка с обзором новой функциональности: https://habr.com/ru/company/selectel/blog/716098/
#arduino
В ноябре 2022 года Arduino объявили, что MicroPython стал частью их экосистемы. Вместе с этим разработчики выпустили новую IDE — Arduino Lab for MicroPython. Но чем она лучше той же Thonny, которую до сих пор используют для программирования микроконтроллеров на Python?
Если работаете или планируете работать с Arduino, вот небольшая заметка с обзором новой функциональности: https://habr.com/ru/company/selectel/blog/716098/
#arduino
👍3
Leetcode 934: Разбор задачи на Python с использованием dfs + bfs
Вообще, LeetCode — это онлайн-платформа с алгоритмическими задачами по программированию, своего рода тренажёр для подготовки к техническим собеседованиям. Считается, что если регулярно с ним заниматься, то через полгода ваши шансы устроиться в бигтех.
На практике конечно, там много нюансов, но это и не важно! Давайте пока просто познакомимся с типичной задачкой и попробуем её решить.
Вам дана двоичная матрица размера n x n, где 1 представляет сушу, а 0 представляет воду. Остров — это 4-направленно связанная группа 1, не связанная ни с какими другими 1. В сетке ровно два острова. Вы можете изменить 0 на 1, чтобы соединить два острова в один остров.
Как найти наименьшее количество нулей, которое нужно перевернуть, чтобы соединить два острова?
Решение разобрали здесь: https://tproger.ru/articles/leetcode-934-razbor-zadachi-s-ispol-zovaniem-dfs-bfs/
#задачи
Вообще, LeetCode — это онлайн-платформа с алгоритмическими задачами по программированию, своего рода тренажёр для подготовки к техническим собеседованиям. Считается, что если регулярно с ним заниматься, то через полгода ваши шансы устроиться в бигтех.
На практике конечно, там много нюансов, но это и не важно! Давайте пока просто познакомимся с типичной задачкой и попробуем её решить.
Вам дана двоичная матрица размера n x n, где 1 представляет сушу, а 0 представляет воду. Остров — это 4-направленно связанная группа 1, не связанная ни с какими другими 1. В сетке ровно два острова. Вы можете изменить 0 на 1, чтобы соединить два острова в один остров.
Как найти наименьшее количество нулей, которое нужно перевернуть, чтобы соединить два острова?
Решение разобрали здесь: https://tproger.ru/articles/leetcode-934-razbor-zadachi-s-ispol-zovaniem-dfs-bfs/
#задачи
👍11👎1
Над чем вы работали на этой неделе, какие задачи героически решили и какие баги превратили в фичи?
Делимся всем, чем хочется похвастаться — текст, скриншоты кода и даже ссылочки на видео: https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-ljogkogo-hvastovstva-za-20-24-fevralja/
Делимся всем, чем хочется похвастаться — текст, скриншоты кода и даже ссылочки на видео: https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-ljogkogo-hvastovstva-za-20-24-fevralja/
💩6👍1
Пишем GPT в 60 строк NumPy — часть 1
Если уже тестировали популярные модельки нейросетей через API или даже просто когда-то что-то где-то слышали и хотите копнуть глубже, в этой статье автор рассказал, как написать GPT всего в 60 строках numpy с нуля: https://habr.com/ru/post/716902/
Для понимания статьи достаточно базово разбираться в Python, NumPy и обладать небольшим опытом в обучении нейросетей. В реализации отсутствует большая часть функциональности, чтобы максимально её упростить. В общем, enjoy.
Вообще, понимание архитектуры GPT — всего лишь небольшая часть более масштабной темы больших языковых моделей, но жизненно важная для разработчиков нейросетей. GPT оказалась первой архитектурой, у которой есть удобные свойства масштабирования, высокой параллелизации на GPU и качественного моделирования последовательностей. Ну и самое приятное, что исходники выложены на гитхабе: github.com/jaymody/picoGPT.
#ml
Если уже тестировали популярные модельки нейросетей через API или даже просто когда-то что-то где-то слышали и хотите копнуть глубже, в этой статье автор рассказал, как написать GPT всего в 60 строках numpy с нуля: https://habr.com/ru/post/716902/
Для понимания статьи достаточно базово разбираться в Python, NumPy и обладать небольшим опытом в обучении нейросетей. В реализации отсутствует большая часть функциональности, чтобы максимально её упростить. В общем, enjoy.
Вообще, понимание архитектуры GPT — всего лишь небольшая часть более масштабной темы больших языковых моделей, но жизненно важная для разработчиков нейросетей. GPT оказалась первой архитектурой, у которой есть удобные свойства масштабирования, высокой параллелизации на GPU и качественного моделирования последовательностей. Ну и самое приятное, что исходники выложены на гитхабе: github.com/jaymody/picoGPT.
#ml
👍14🔥1
Пишем GPT в 60 строк NumPy — часть 2
Оказалось, что только кинул предыдущий пост в отложку, как через несколько часов вышла вторая (и финальная) часть статьи. Что ж, увидел, исправляюсь, делюсь с вами: https://habr.com/ru/post/717644/
В этой части автор уже вплотную подходит к тому этапу масштабирования. Когда требуется куча труда разработчиков и денег, а фреймворки обучения могут становиться абсурдно долгими и сложными. Так что если ваш путь лежит как раз в такие команды, это хорошая база для старта.
#ml
Оказалось, что только кинул предыдущий пост в отложку, как через несколько часов вышла вторая (и финальная) часть статьи. Что ж, увидел, исправляюсь, делюсь с вами: https://habr.com/ru/post/717644/
В этой части автор уже вплотную подходит к тому этапу масштабирования. Когда требуется куча труда разработчиков и денег, а фреймворки обучения могут становиться абсурдно долгими и сложными. Так что если ваш путь лежит как раз в такие команды, это хорошая база для старта.
#ml
👍6👎3
Самые популярные вопросы на собеседовании: «Как перевести строку в верхний/нижний регистр?»
Это очень простой вопрос, но и на них иногда «спотыкаются», особенно новички. Для ответа на этот вопрос можно использовать строковые методы
#собеседование
Это очень простой вопрос, но и на них иногда «спотыкаются», особенно новички. Для ответа на этот вопрос можно использовать строковые методы
upper()
и lower()
:small_word = 'potatocake'
big_word = 'FISHCAKE'
small_word.upper()
#=> 'POTATOCAKE'
big_word.lower()
#=> 'fishcake'
#собеседование
👍19🔥3👎1👏1
Forwarded from Python: задачки и вопросы
👍11
Forwarded from Python: задачки и вопросы
Объяснение:
Функция
И так как в примере выше мы подаём ей
Функция
range()
может принимать в качестве параметров исключительно int-значения
И так как в примере выше мы подаём ей
float-число
, на выходе нам выдаётся ошибка👍39💩1
Самые популярные вопросы на собеседовании: «Объясните функцию range»
Range генерирует список целых чисел. Её можно использовать тремя способами. Функция принимает от одного до трёх аргументов.
#собеседование
Range генерирует список целых чисел. Её можно использовать тремя способами. Функция принимает от одного до трёх аргументов.
range(stop)
— генерирует целые числа от 0 до целого числа stop
:[i for i in range(10)]
#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(start, stop)
— генерирует целые числа от start
до stop
:[i for i in range(2,10)]
#=> [2, 3, 4, 5, 6, 7, 8, 9]
range(start, stop, step)
— генерирует целые числа от start
до stop
с интервалами step
:list(range(2,10,2))
#=> [2, 4, 6, 8]
#собеседование
👍38👎5🔥1💩1
Дайджест Python #4: версия 3.12 и свой GPT за 60 строк кода
Собрали дайджест из лучших материалов по Python. Как написать свою GPT-модель всего за 60 строк кода, что нового в Python в версии 3.12 и как повлиять на работу коммунальных служб с помощью машинного обучения — читайте в статье:
https://tproger.ru/articles/dajdzhest-python-4-versija-3-12-i-svoj-gpt-za-60-strok-koda/
#дайджест
Собрали дайджест из лучших материалов по Python. Как написать свою GPT-модель всего за 60 строк кода, что нового в Python в версии 3.12 и как повлиять на работу коммунальных служб с помощью машинного обучения — читайте в статье:
https://tproger.ru/articles/dajdzhest-python-4-versija-3-12-i-svoj-gpt-za-60-strok-koda/
#дайджест
👍8👎1💩1
Как учить Python с нуля с удовольствием: пишем своего чат-бота
Python — подходящий язык программирования для старта. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи».
Автор этой статьи Илья Осипов втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было неудобным и он решил написать чат-бота, который будет присылать расписание занятий в более удобном виде. И через годчат-ботом пользовалось уже 4 тысячи пользователей.
В статье Илья предлагает начать изучение с решения реальных проблем и написать своего полезного чат-бота: https://tproger.ru/articles/kak-uchit-python-s-nulya-s-udovol-stviem-piwem-svoego-chat-bota/
#начинающим #telegram
Python — подходящий язык программирования для старта. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи».
Автор этой статьи Илья Осипов втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было неудобным и он решил написать чат-бота, который будет присылать расписание занятий в более удобном виде. И через годчат-ботом пользовалось уже 4 тысячи пользователей.
В статье Илья предлагает начать изучение с решения реальных проблем и написать своего полезного чат-бота: https://tproger.ru/articles/kak-uchit-python-s-nulya-s-udovol-stviem-piwem-svoego-chat-bota/
#начинающим #telegram
👍18❤2👎1💩1
5 лучших ресурсов для изучения Python: часть 2
Недавно я уже постил подборочку из 5 годных источников, которые помогают прокачаться в Python.
Пост собрал почти 300 репостов, а это много. Поэтому делюсь ещё пятёркой тоже вполне себе крутых источников для изучения Python (кроме этого канала, конечно 😎). Тут уже даже и бесплатные книги есть.
Сохраняйте себе и учитесь на здоровье:
1. Python.org
Шутки шутками, мемы мемами, а лучший источник для изучения любого языка — это его документация. На Python.org есть куча ссылок, материалов и ресурсов по работе языком. А ещё — отличное руководство для начинающих, которое проведет вас по основам языка.
2. Электронная книга «Learn Python the Hard Way»
Бесплатную книгу «Learn Python the Hard Way» можно читать онлайн на любых устройствах, в т.ч. и мобильных. Не знаю, откуда данные, но несколько раз видел утверждение, что её читают минимум 1,5 млн людей. Если правда, считаю, достойно.
3. LearnPython.org
Это — платформа с интерактивными руководствами, с которыми можно попрактиковаться прямо в браузере. Идеально для новичков.
4. Серия книг «Invent with Python»
В основе серии лежит идея «наслаждаться процессом его изучения». Каждое руководство, совет и урок освещают подход к решению какой-то определенной задачи.
Онлайн-версии доступны бесплатно.
5. Электронная книга «Dive into Python 3»
Это — онлайн-книга, в которой объясняются отличия третьей версии языка Python от второй. Тема уже более узкая, но зато книгу тоже можно скачать бесплатно.
#подборка
Недавно я уже постил подборочку из 5 годных источников, которые помогают прокачаться в Python.
Пост собрал почти 300 репостов, а это много. Поэтому делюсь ещё пятёркой тоже вполне себе крутых источников для изучения Python (кроме этого канала, конечно 😎). Тут уже даже и бесплатные книги есть.
Сохраняйте себе и учитесь на здоровье:
1. Python.org
Шутки шутками, мемы мемами, а лучший источник для изучения любого языка — это его документация. На Python.org есть куча ссылок, материалов и ресурсов по работе языком. А ещё — отличное руководство для начинающих, которое проведет вас по основам языка.
2. Электронная книга «Learn Python the Hard Way»
Бесплатную книгу «Learn Python the Hard Way» можно читать онлайн на любых устройствах, в т.ч. и мобильных. Не знаю, откуда данные, но несколько раз видел утверждение, что её читают минимум 1,5 млн людей. Если правда, считаю, достойно.
3. LearnPython.org
Это — платформа с интерактивными руководствами, с которыми можно попрактиковаться прямо в браузере. Идеально для новичков.
4. Серия книг «Invent with Python»
В основе серии лежит идея «наслаждаться процессом его изучения». Каждое руководство, совет и урок освещают подход к решению какой-то определенной задачи.
Онлайн-версии доступны бесплатно.
5. Электронная книга «Dive into Python 3»
Это — онлайн-книга, в которой объясняются отличия третьей версии языка Python от второй. Тема уже более узкая, но зато книгу тоже можно скачать бесплатно.
#подборка
👍15👎1💩1
Что вы делали на этой неделе? Пост хвастовства за 27 февраля — 3 марта
Не важно, разработчик вы или тестировщик, деврел или эйчар. Расскажите, какие задачи вы героически решили, и делитесь успехами. Кидайте всё, чем хочется похвастаться: текст, скриншоты кода и даже ссылочки на видео:
https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-hvastovstva-za-27-fevralja-3-marta/
#обсуждение
Не важно, разработчик вы или тестировщик, деврел или эйчар. Расскажите, какие задачи вы героически решили, и делитесь успехами. Кидайте всё, чем хочется похвастаться: текст, скриншоты кода и даже ссылочки на видео:
https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-hvastovstva-za-27-fevralja-3-marta/
#обсуждение
👍5💩3
Отгадай слово: как создать игру с элементами машинного обучения и выйти в ноль за 2 месяца
Интересная история, как ребята разработали игру, в которую за два месяца сыграли уже более 107 тысяч уникальных пользователей.
Такие истории на самом деле хороши тем, что там нет успешного успеха и всех этих «мы бросили универ и полгода разрабатывали синхрофазо2048 в гараже». Просто ребята сели, собрали игру на Python, потратились на серваки, набили шишек и в итоге получили очень хороший опыт. И хотя бы затраты на сервак окупили.
Как разрабатывали, как монетезировали и как во всём этом прижился ИИ — можно почитать в статье: https://habr.com/ru/company/aitalenthub/blog/718064/
#ml
Интересная история, как ребята разработали игру, в которую за два месяца сыграли уже более 107 тысяч уникальных пользователей.
Такие истории на самом деле хороши тем, что там нет успешного успеха и всех этих «мы бросили универ и полгода разрабатывали синхрофазо2048 в гараже». Просто ребята сели, собрали игру на Python, потратились на серваки, набили шишек и в итоге получили очень хороший опыт. И хотя бы затраты на сервак окупили.
Как разрабатывали, как монетезировали и как во всём этом прижился ИИ — можно почитать в статье: https://habr.com/ru/company/aitalenthub/blog/718064/
#ml
👍6😁2👎1💩1