beginners_python_cheat_sheet_pcc_all.pdf
741 KB
✍️🐍 Большая обновлённая шпаргалка по Python для начинающих
Сделана на базе книги Python Crash Course, Third Edition. На 28 страницах шпаргалки охвачены все основные темы, касающиеся языка:
▫️типы данных,
▫️классы,
▫️обработка ошибок,
▫️основные методы для работы с разными типами данных,
▫️тестирование кода,
▫️работа с Pygame, Matplotlib, Plotly,
▫️основы работы с Django,
▫️введение в Git.
🔗Ссылка на сайт книги
Сделана на базе книги Python Crash Course, Third Edition. На 28 страницах шпаргалки охвачены все основные темы, касающиеся языка:
▫️типы данных,
▫️классы,
▫️обработка ошибок,
▫️основные методы для работы с разными типами данных,
▫️тестирование кода,
▫️работа с Pygame, Matplotlib, Plotly,
▫️основы работы с Django,
▫️введение в Git.
🔗Ссылка на сайт книги
👍12🔥8
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🧑💻 Особенности работы в айти: результаты опроса подписчиков
В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.
Вот некоторые выводы:
🧔♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.
🔗 Полный отчёт можно прочесть по этой ссылке
💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.
Вот некоторые выводы:
🧔♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.
🔗 Полный отчёт можно прочесть по этой ссылке
💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
❤14👍5😁3
Media is too big
VIEW IN TELEGRAM
✉️ Создаём приложение для обмена мгновенными сообщениями на Django
В гайде описана простая реализация мессенджера без использования тяжёлых зависимостей (например, Redis). Автор постарался показать самый лёгкий способ добавить обработку событий в реальном времени в Django. Шаблон для визуального оформления в инструкции также есть.
🔗 Текстовый гайд
📹 Пошаговая видеоинструкция
В гайде описана простая реализация мессенджера без использования тяжёлых зависимостей (например, Redis). Автор постарался показать самый лёгкий способ добавить обработку событий в реальном времени в Django. Шаблон для визуального оформления в инструкции также есть.
🔗 Текстовый гайд
📹 Пошаговая видеоинструкция
👍17🔥3❤1
🎉 Python и неопытные программисты: наши лучшие статьи за 2023 год
За 2023 год «Библиотека программиста» опубликовала 227 статей, и Питон второй год подряд в ТОПе.
Вот 5 самых популярных материалов (сохраняй, если не читал):
🐛 9 признаков неопытного программиста
😢 Обратная сторона медали: 9 причин, почему тебе не нужно идти в IT
🚩 Кому не подходит работа в IT: 6 красных флагов
🐍📚 ТОП-15 книг по Python для начинающих и опытных разработчиков в 2023 году
🐍 Самоучитель по Python для начинающих. Часть 11: Функции с позиционными и именованными аргументами
Ещё больше итогов года, а также ссылки на «Самоучитель по Python для начинающих» здесь 👈
За 2023 год «Библиотека программиста» опубликовала 227 статей, и Питон второй год подряд в ТОПе.
Вот 5 самых популярных материалов (сохраняй, если не читал):
🐛 9 признаков неопытного программиста
😢 Обратная сторона медали: 9 причин, почему тебе не нужно идти в IT
🚩 Кому не подходит работа в IT: 6 красных флагов
🐍📚 ТОП-15 книг по Python для начинающих и опытных разработчиков в 2023 году
🐍 Самоучитель по Python для начинающих. Часть 11: Функции с позиционными и именованными аргументами
Ещё больше итогов года, а также ссылки на «Самоучитель по Python для начинающих» здесь 👈
🔥10👍3🤔3❤2
💬 Представьте, что к вам пришёл знакомый, который решил стать айтишником. Он пока не знает, чем конкретно хотел бы заниматься, но в курсе, что вы — Python-разработчик. Стали бы вы советовать ему изучить Python?
❤️ — да
🤔 — нет
👍 — не знаю
👇 Аргументируйте в комментариях
#интерактив
❤️ — да
🤔 — нет
👍 — не знаю
👇 Аргументируйте в комментариях
#интерактив
❤141🤔56👍38😁7
💻 Насколько хорошо GPT и другие LLM разбираются в коде?
Исследователи создали бенчмарк CRUXEval, который позволяет протестировать большие языковые модели на 800 Python-функциях. В тест включены две задачи: предсказание входа и предсказание выхода.
Для бенчмарка исследователи сначала сгенерировали набор функций и получили выходы для них. Затем в наборе оставили только небольшие задачи, решение которых для опытного программиста должно занять пару минут. На них протестировали основные LLM.
✔️Так, лучшей оказалась gpt-4-0613. Она справлялась с предсказанием входа в 70% случаев и с предсказанием выхода в 69% случаев. Также выяснилось, что есть задачи, для которых модель неспособна дать верный ответ (пример на картинке 👆).
Можно самостоятельно поэкспериментировать с бенчмарком и LLM. Инструкция есть в репозитории.
👩💻 Репозиторий на GitHub
🔗 Демоверсия
Исследователи создали бенчмарк CRUXEval, который позволяет протестировать большие языковые модели на 800 Python-функциях. В тест включены две задачи: предсказание входа и предсказание выхода.
Для бенчмарка исследователи сначала сгенерировали набор функций и получили выходы для них. Затем в наборе оставили только небольшие задачи, решение которых для опытного программиста должно занять пару минут. На них протестировали основные LLM.
✔️Так, лучшей оказалась gpt-4-0613. Она справлялась с предсказанием входа в 70% случаев и с предсказанием выхода в 69% случаев. Также выяснилось, что есть задачи, для которых модель неспособна дать верный ответ (пример на картинке 👆).
Можно самостоятельно поэкспериментировать с бенчмарком и LLM. Инструкция есть в репозитории.
👩💻 Репозиторий на GitHub
🔗 Демоверсия
👍11😁3
Группы исключений появились в языке, начиная с Python 3.11. Для них используется специальный новый оператор except*. Символ звёздочки указывает на то, что except может обработать несколько исключений.
В более старых версиях Python интерпретатор мог распространять только одно исключение за раз. Цепочки исключений, представленные в PEP 3134, объединяли лишь связанные исключения, но возникали ситуации, когда было нужно распространить одновременно несколько несвязанных исключений. Например, функция из стандартной библиотеки socket.create_connection может пытаться подключиться к нескольким разным адресам. Если все попыки провалятся, стоило бы сообщить об этом пользователю.
try:
raise ExceptionGroup('Example ExceptionGroup', (
TypeError('Example TypeError'),
ValueError('Example ValueError'),
KeyError('Example KeyError'),
AttributeError('Example AttributeError')
))
except* TypeError:
...
except* ValueError as e:
...
except* (KeyError, AttributeError) as e:
...
🔗Прочесть подробнее можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26
🚀 Ускоряем работу Python с Numba
Numba — это JIT-компилятор, способный повысить производительность путём трансляции кода на Python в машинный код прямо во время работы программы. Так, Numba анализирует функцию, определяет типы данных и затем компилирует её в машинный код.
✔️ Пример:
В статье дана простая инструкция, как начать работу с этим инструментом. Есть мнение, что Numba выводит скорость Python примерно на уровень Julia.
Numba — это JIT-компилятор, способный повысить производительность путём трансляции кода на Python в машинный код прямо во время работы программы. Так, Numba анализирует функцию, определяет типы данных и затем компилирует её в машинный код.
✔️ Пример:
@jit(nopython=True)
def sum_array(arr):
result = 0
for i in arr:
result += i
return result
В статье дана простая инструкция, как начать работу с этим инструментом. Есть мнение, что Numba выводит скорость Python примерно на уровень Julia.
👍21
random() возвращает разные значения каждый раз, когда вызывается. Однако иногда программам нужна воспроизводимость. В этих случаях можно использовать функцию seed() для инициализации псевдорандомного генератора. Он будет возвращать один и тот же набор ожидаемых значений.
Дело в том, что при вызове random.seed с определённым значением, устанавливается начальное состояние алгоритма генерации. Это значение используется для создания первого числа в последовательности.
import random
random.seed(1)
for i in range(5):
print('{:04.3f}'.format(random.random()), end=' ‘)
seed() передаётся объект. Если не указывать аргумент, то по умолчанию будет использоваться текущее время. Если передать не число, а строку, то функция преобразует её в int.
#код
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2
В сообществе Python идут споры о новом предложении по синтаксису аргументов. PEP 736 предлагает заменить конструкцию f(x=x) на f(x=) в случаях, когда именованный аргумент совпадает с именем переменной, соответствующей его значению.
Вот пример. Вместо:
my_function(
my_first_variable=my_first_variable,
my_second_variable=my_second_variable,
my_third_variable=my_third_variable,
)
следует писать:
my_function(my_first_variable=, my_second_variable=, my_third_variable=)
❤️ — одобряю PEP 736
🤔 — мне не нравится
#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔219❤81👍6😁2
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
🥱3👍2🤔2❤1
GitHub Pages — удобная платформа для размещения статических веб-страниц. На ней можно размещать любой контент, не нарушающий правила сервиса.
Размер сайта — до 1 Гб.
Объем трафика — 100 Гб в месяц.
Количество сборок в час — до 10.
Но, вместе с плюсами, есть и минусы. О них и обо всём другом в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
🍊Подборка лучших статей «Библиотеки программиста» за декабрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🐍📋 F-строки в Python для интерполяции и форматирования строк
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🔟🏢 ТОП-10 российских IT-работодателей
🤖 Машинное обучение: что это такое и как оно работает
📁💡Где программисту взять идеи для портфолио
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python
🧠🧩 Зачем айтишнику психолог?
😺🐙✅ Как разобраться в Git: краткая инструкция для джунов
👨🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
⚙️✅📕 Ответы на вопросы для самопроверки из книги «Тестирование Дот Ком» Романа Савина
🎄🎁 10 абсурдных подарков программисту на Новый год
✍️ Почему отсутствие технической документации убьёт ваш проект?
🐍📋 F-строки в Python для интерполяции и форматирования строк
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
🔟🏢 ТОП-10 российских IT-работодателей
🤖 Машинное обучение: что это такое и как оно работает
📁💡Где программисту взять идеи для портфолио
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python
🧠🧩 Зачем айтишнику психолог?
😺🐙✅ Как разобраться в Git: краткая инструкция для джунов
👨🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
⚙️✅📕 Ответы на вопросы для самопроверки из книги «Тестирование Дот Ком» Романа Савина
🎄🎁 10 абсурдных подарков программисту на Новый год
✍️ Почему отсутствие технической документации убьёт ваш проект?
❤5👍5🥱1
🐰 Никаких фигурных скобок: очередная пасхалка в Python
Если попытаться выполнить следующий код:
то выведется ошибка SyntaxError: not a chance
Это шутка, которую разработчики включили в язык, чтобы подчеркнуть особенность его синтаксиса — отсутствие необходимости отделять блоки друг от друга фигурными скобками.
👉Дело в том, что модуль future позволяет импортировать в старый код обратно несовместимые функции (например истинное деление, появившееся в Python 3.0). Таким образом, «not a chance» однозначно даёт понять, что в Python никогда не будут введены фигурные скобки.
Если попытаться выполнить следующий код:
from __future__ import braces
то выведется ошибка SyntaxError: not a chance
Это шутка, которую разработчики включили в язык, чтобы подчеркнуть особенность его синтаксиса — отсутствие необходимости отделять блоки друг от друга фигурными скобками.
👉Дело в том, что модуль future позволяет импортировать в старый код обратно несовместимые функции (например истинное деление, появившееся в Python 3.0). Таким образом, «not a chance» однозначно даёт понять, что в Python никогда не будут введены фигурные скобки.
❤18😁11👍6
Автор The Hitchhiker's Guide to Python перечисляет распространённые ошибки, которые часто допускают новички.
🚫Одна из таких — изменяемый аргумент по умолчанию
Допустим, вы пишете функцию:
def append_to(element, to=[]):
to.append(element)
return to
И вот, что вы ожидаете увидеть:
my_list = append_to(12)
print(my_list) # -> [12]
my_other_list = append_to(42)
print(my_other_list) # -> [42]
Однако на самом деле вывод будет таким:
[12]
[12, 42]
Список создаётся единственный раз при определении функции, поэтому при каждом последующем вызове он уже не будет пустым.
Лучше делать так:
def append_to(element, to=None):
if to is None:
to = []
to.append(element)
return to
О других ловушках читайте в статье 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31❤4👏1
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
🔥30👍8❤🔥3
👨💻 Лучшие практики проектирования REST API
Автор статьи перечисляет правила, каждое из которых охватывает определённый аспект проектирования API. Вот несколько правил:
✔️Используйте множественное число для названий коллекций
# Хорошо:
GET /products # get all the products
GET /products/{product_id} # get one product
# Плохо:
GET /product/{product_id}
✔️Не добавляйте .json или другие расширения к URL-адресу
✔️Не возвращайте массивы как ответы верхнего уровня
Оборачивайте их в объекты.
# Хорошо:
GET /things returns:
{ «data»: [{ ...thing1...}, { ...thing2...}] }
# Плохо
GET /things returns:
[{ ...thing1...}, { ...thing2...}]
✔️Используйте строки для всех идентификаторов
# Хорошо:
{ «id»: «123» }
# Плохо:
{ «id»: 123 }
👉Остальные советы читайте в статье
Автор статьи перечисляет правила, каждое из которых охватывает определённый аспект проектирования API. Вот несколько правил:
✔️Используйте множественное число для названий коллекций
# Хорошо:
GET /products # get all the products
GET /products/{product_id} # get one product
# Плохо:
GET /product/{product_id}
✔️Не добавляйте .json или другие расширения к URL-адресу
✔️Не возвращайте массивы как ответы верхнего уровня
Оборачивайте их в объекты.
# Хорошо:
GET /things returns:
{ «data»: [{ ...thing1...}, { ...thing2...}] }
# Плохо
GET /things returns:
[{ ...thing1...}, { ...thing2...}]
✔️Используйте строки для всех идентификаторов
# Хорошо:
{ «id»: «123» }
# Плохо:
{ «id»: 123 }
👉Остальные советы читайте в статье
👍7🔥2
👀 Расскажите про области видимости переменных в Python
Область видимости — это контекст в коде, где определённые переменные доступны для использования. В Python есть несколько областей видимости.
🔸 Локальная
Локальные переменные инициализируются вместе с функцией и уникальны для неё. Они недоступны за пределами функции.
🔸 Глобальная
Такие переменные определены на уровне скрипта. Доступны в любом месте кода после их определения.
🔸 Нелокальная (Python Nonlocal keyword)
Появилась в Python 3. Нелокальные переменные чаще всего находятся во вложенной функции и не являются локальными или глобальными. Они доступны лишь в функции, которая их окружает. Вот пример:
#вопросы_с_собеседований
Область видимости — это контекст в коде, где определённые переменные доступны для использования. В Python есть несколько областей видимости.
🔸 Локальная
Локальные переменные инициализируются вместе с функцией и уникальны для неё. Они недоступны за пределами функции.
🔸 Глобальная
Такие переменные определены на уровне скрипта. Доступны в любом месте кода после их определения.
🔸 Нелокальная (Python Nonlocal keyword)
Появилась в Python 3. Нелокальные переменные чаще всего находятся во вложенной функции и не являются локальными или глобальными. Они доступны лишь в функции, которая их окружает. Вот пример:
def get_candy():
candy = 5
def increment_candy():
nonlocal candy
candy += 1
return candy
return increment_candy
#вопросы_с_собеседований
👍26
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
Представьте: вы выиграли путевку на пляж с золотым песком и изумрудным океаном. Но радость быстро сменяется разочарованием — вместо коктейля в руках по-прежнему клавиатура и мышка. И вы понимаете — это всего лишь галлюцинации изможденного мозга, который умоляет вас остановиться и, наконец, сделать перерыв. Но мы ведь трудоголики, правда?
🔗 Читать статью
🔗 Зеркало
Представьте: вы выиграли путевку на пляж с золотым песком и изумрудным океаном. Но радость быстро сменяется разочарованием — вместо коктейля в руках по-прежнему клавиатура и мышка. И вы понимаете — это всего лишь галлюцинации изможденного мозга, который умоляет вас остановиться и, наконец, сделать перерыв. Но мы ведь трудоголики, правда?
🔗 Читать статью
🔗 Зеркало
❤9👍7😁1🥱1
❓Почему all([]) — это True, а math.prod([]) — 1
Иногда Python делает неожиданные вещи с пустыми списками. Можете скопировать и проверить сами:
Это поведение может быть объяснено как следствие одного математического принципа. В математике есть такое понятие как моноид — множество с нейтральным элементом (identity) и бинарной ассоциативной операцией. Если мы говорим об операции умножения, то нейтральным элементом будет 1, так как любое число, умноженное на единицу, равно самому себе.
В Python для prod в качестве identity выступает 1, для sum — 0, для all — True, а для any — False. Эти операции соответствуют принципу моноидов, возвращая identity при работе с пустыми списками.
Некоторые операции, такие как max, не могут быть определены для пустых списков, поскольку у них нет identity. Более подробно читайте об этом в статье
Иногда Python делает неожиданные вещи с пустыми списками. Можете скопировать и проверить сами:
import math
print(all([]))
print(math.prod([]))
Это поведение может быть объяснено как следствие одного математического принципа. В математике есть такое понятие как моноид — множество с нейтральным элементом (identity) и бинарной ассоциативной операцией. Если мы говорим об операции умножения, то нейтральным элементом будет 1, так как любое число, умноженное на единицу, равно самому себе.
В Python для prod в качестве identity выступает 1, для sum — 0, для all — True, а для any — False. Эти операции соответствуют принципу моноидов, возвращая identity при работе с пустыми списками.
Некоторые операции, такие как max, не могут быть определены для пустых списков, поскольку у них нет identity. Более подробно читайте об этом в статье
👍26❤2