Какие книги по Python вы читали недавно? Какая книга вам понравилась больше всего, а какую лучше вообще не открывать?
❤🔥8💩1
Forwarded from IT Юмор
Media is too big
VIEW IN TELEGRAM
«Я не смог найти подходящий фреймворк, поэтому напишу свой»
😁16❤14👍3💩2
Введение в Git: от установки до основных команд
Git — это консольная утилита, с помощью которой вы можете откатывать свой проект до более старой версии, сравнивать, анализировать или соединять изменения в одном репозитории. Притом, это может быть что угодно — не только код.
И сегодня умение работать с Git — мастхев для разработчика на любом языке программирования. Если ещё не разбирались с Git, вот простой и доступный гайд для начинающих: https://tproger.ru/translations/beginner-git-cheatsheet/
#git #начинающим
Git — это консольная утилита, с помощью которой вы можете откатывать свой проект до более старой версии, сравнивать, анализировать или соединять изменения в одном репозитории. Притом, это может быть что угодно — не только код.
И сегодня умение работать с Git — мастхев для разработчика на любом языке программирования. Если ещё не разбирались с Git, вот простой и доступный гайд для начинающих: https://tproger.ru/translations/beginner-git-cheatsheet/
#git #начинающим
👍14
Как писать чистый код на 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