Курс и конвертер валют в Python
Для работы с разными валютами и их курсами существует библиотека forex-python.
С её помощью можно как узнать курс любой валюты, так и сконвертировать одну валюту в другую.
Ознакомиться с интерактивным примером кода можно тут.
#currency #forex_python
Для работы с разными валютами и их курсами существует библиотека forex-python.
С её помощью можно как узнать курс любой валюты, так и сконвертировать одну валюту в другую.
Ознакомиться с интерактивным примером кода можно тут.
#currency #forex_python
Программирование — это базовый навык разработчика, как чтение или счёт. По-настоящему крутой программист умеет писать код, который решает задачи бизнеса и умножает число довольных пользователей. Хочешь научиться этому за 4 года бакалавриата? Тогда готовься к сложности «Hard» и поступай в Институт iSpring — вуз на базе международной IT-компании.
После выпуска тебе не придётся искать стажировки или переучиваться на курсах, чтобы получить оффер от IT-компании. Поступив в Институт iSpring, ты уже после 1 курса начнёшь работать Junior-разработчиком, а к концу 4 курса повысишь грейд до Middle с опытом управления командами. Да, всё это можно сделать за бакалавриат!
Что нужно знать, если хочешь поступить:
— обучение очное, 70 из 120 мест — с грантовой поддержкой;
— учебная программа развивает hard skills и soft skills: от железа и веб-разработки до бизнес-практики и тренингов по эффективности;
— лабораторки основаны на реальных рабочих задачах в IT-компании;
— преподаватели — сотрудники международной компании с большим опытом в обучении;
— в кампусе есть библиотека с проф. литературой, столовая и тренажёрка;
— финансовый вопрос — не препятствие к поступлению. Если у поступившего нет возможности оплачивать обучение, ему поможет компания-грантодатель.
Как поступить:
Чтобы стать студентом Института iSpring, нужно пройти внутренние этапы поступления (тест на интеллект, видео-визитка, эссе) и сдать ЕГЭ по русскому языку и профильной математике на 60+ баллов.
Подробности ищи тут: ispring.institute
АНО ВО «РУМТ»
ИНН 1215144727
Kra243a3T
После выпуска тебе не придётся искать стажировки или переучиваться на курсах, чтобы получить оффер от IT-компании. Поступив в Институт iSpring, ты уже после 1 курса начнёшь работать Junior-разработчиком, а к концу 4 курса повысишь грейд до Middle с опытом управления командами. Да, всё это можно сделать за бакалавриат!
Что нужно знать, если хочешь поступить:
— обучение очное, 70 из 120 мест — с грантовой поддержкой;
— учебная программа развивает hard skills и soft skills: от железа и веб-разработки до бизнес-практики и тренингов по эффективности;
— лабораторки основаны на реальных рабочих задачах в IT-компании;
— преподаватели — сотрудники международной компании с большим опытом в обучении;
— в кампусе есть библиотека с проф. литературой, столовая и тренажёрка;
— финансовый вопрос — не препятствие к поступлению. Если у поступившего нет возможности оплачивать обучение, ему поможет компания-грантодатель.
Как поступить:
Чтобы стать студентом Института iSpring, нужно пройти внутренние этапы поступления (тест на интеллект, видео-визитка, эссе) и сдать ЕГЭ по русскому языку и профильной математике на 60+ баллов.
Подробности ищи тут: ispring.institute
АНО ВО «РУМТ»
ИНН 1215144727
Kra243a3T
Вычисление размера объектов
Для вычисления размера объекта мы можем использовать функцию
И хотя все
Аргумент
Функция
#getsizeof
Для вычисления размера объекта мы можем использовать функцию
getsizeof(object[, default])
из модуля sys
. Так как в python все по сути является объектами, то и вычислить размер в памяти мы можем у любого такого объекта.И хотя все
built-in
(встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.Аргумент
default
позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError
.Функция
getsizeof
вызывает метод __sizeof__
объекта и добавляет дополнительные служебные данные сборщика мусора.#getsizeof
Многопоточность
В модуле
Параметр
Когда
#потоки #многопоточность
В модуле
threading
новый поток выполнения может начинаться с нового threading.Thread
и присвоения ему функции для выполнения.Параметр
target
ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start
, также не будет вызываться Thread
объекта.Когда
my_thread
завершается, вызов start
выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True
или установите my_thread.daemon
в True
перед вызовом start()
.#потоки #многопоточность
Легкий веб-фреймворк
Несмотря на свою минималистичность,
После запуска подобного примера можете перейти в браузере по адресу
#фреймворки #bottle
Bottle
– это быстрый, простой и легкий микро-веб-фреймворк WSGI
для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.Несмотря на свою минималистичность,
Bottle
предоставляет довольно широкие возможности, которых на 100% хватает для мелких и средних проектов. Вот список основных возможностей: routing, templates, POST-routing, обработка форм, cookies и сервер.После запуска подобного примера можете перейти в браузере по адресу
localhost:5000/hello/world
и посмотреть на результат, полученный из всего пяти строк кода.#фреймворки #bottle
Находим схожие строки
В стандартной библиотеке Python существует модуль
Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент
#difflib
В стандартной библиотеке Python существует модуль
difflib
, в котором есть интересный метод get_close_matches
. Он позволяет найти в списке строки, похожие на некую исходную.Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент
n
, который задаёт максимальное число возвращаемых совпадений.#difflib
Бесплатный курс по облачным технологиям от экспертов Cloud․ru
Индустрия облачных технологий развивается, а вместе с ней растет и количество сервисов для бизнеса. Как разобраться в их многообразии и держать руку на пульсе новых облачных трендов?
Ответ на этот вопрос вы найдете на вебинаре облачного провайдера Cloud․ru, где в прямом эфире эксперты компании расскажут, как обучение на новом курсе поможет легко и быстро разобраться в многообразии IaaS- и PaaS-сервисов.
⚡С помощью курса «Быстрый старт в Cloud․ru Advanced» вы получите навыки управления проектами в облаке, а также научитесь настраивать сети, правильно хранить данные и разворачивать виртуальные машины.
Для всех зарегистрированных участников будет доступна запись вебинара и презентация спикеров — вы сможете вернуться к просмотру в любое удобное время.
🎁 Кстати, первых трех поступивших на курс ждет подарок, а какой именно — вы узнаете в эфире.
Зарегистрироваться
Индустрия облачных технологий развивается, а вместе с ней растет и количество сервисов для бизнеса. Как разобраться в их многообразии и держать руку на пульсе новых облачных трендов?
Ответ на этот вопрос вы найдете на вебинаре облачного провайдера Cloud․ru, где в прямом эфире эксперты компании расскажут, как обучение на новом курсе поможет легко и быстро разобраться в многообразии IaaS- и PaaS-сервисов.
⚡С помощью курса «Быстрый старт в Cloud․ru Advanced» вы получите навыки управления проектами в облаке, а также научитесь настраивать сети, правильно хранить данные и разворачивать виртуальные машины.
Для всех зарегистрированных участников будет доступна запись вебинара и презентация спикеров — вы сможете вернуться к просмотру в любое удобное время.
🎁 Кстати, первых трех поступивших на курс ждет подарок, а какой именно — вы узнаете в эфире.
Зарегистрироваться
Упрощенная работа с JSON
Казалось бы, куда еще проще, но есть один интересный пакет
Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Казалось бы, куда еще проще, но есть один интересный пакет
JMESpath
, который позволяет декларативно указать, как извлекать элементы из документа JSON. Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
search
принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON). Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Частичное применение
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
#functools
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию
partial
из стандартной библиотеки functools
.Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
#functools
Курс по python-разработке для тех, кто хочет сменить профессию.
Неважно, сколько вам лет и есть ли у вас опыт в IT — за 9 месяцев учёбы освоить разработку сможет каждый. Это возможно, если правильно выстроить программу и усердно заниматься. Упорство зависит от вас, а о качестве материалов позаботилась команда Яндекс Практикума.
— Программа основана на реальных требованиях работодателей к младшим специалистам.
— Интерактивный тренажёр помогает освоить теорию и закрепить её в тестах.
— Практика идёт на учебных проектах для портфолио: от чат-бота и сайта-отзовика до соцсети и многофункционального сервиса.
А ещё на курсе много работы с опытными специалистами:
— наставники-разработчики разбирают сложные темы на живых вебинарах.
— код-ревьюеры проверяют проекты и подсказывают, как их улучшить.
— кураторы помогают с организацией и расписанием.
— карьерный центр учит работать с резюме, мотивационными письмами, портфолио и собеседованиями.
Пройдите первый бесплатный урок →
Неважно, сколько вам лет и есть ли у вас опыт в IT — за 9 месяцев учёбы освоить разработку сможет каждый. Это возможно, если правильно выстроить программу и усердно заниматься. Упорство зависит от вас, а о качестве материалов позаботилась команда Яндекс Практикума.
— Программа основана на реальных требованиях работодателей к младшим специалистам.
— Интерактивный тренажёр помогает освоить теорию и закрепить её в тестах.
— Практика идёт на учебных проектах для портфолио: от чат-бота и сайта-отзовика до соцсети и многофункционального сервиса.
А ещё на курсе много работы с опытными специалистами:
— наставники-разработчики разбирают сложные темы на живых вебинарах.
— код-ревьюеры проверяют проекты и подсказывают, как их улучшить.
— кураторы помогают с организацией и расписанием.
— карьерный центр учит работать с резюме, мотивационными письмами, портфолио и собеседованиями.
Пройдите первый бесплатный урок →
Explicit Conversion Flag
Флаг явного преобразования используется для преобразования значения поля
Это поле можно использовать для переопределения поведения
В примере, в случае с флагом
#repr #str #format
Флаг явного преобразования используется для преобразования значения поля
format
перед его непосредственным форматированием.Это поле можно использовать для переопределения поведения
format
для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:!r
– преобразует значение в строку, используя функцию repr()
!s
– преобразует значение в строку, используя функцию str()
В примере, в случае с флагом
!r
строка 'Hello'
будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s
– без кавычек (в более удобном для чтения виде).#repr #str #format
Тестирование на pytest
pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.
Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.
Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними.
#тестирование #pytest #assert
pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.
Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.
Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними.
#тестирование #pytest #assert
Валидаторы данных
Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.
Модуль
Помимо этого,
#validators
Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.
Модуль
validators
позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.Помимо этого,
validators
позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.#validators
Разница между __str__ и __repr__
Оба магических метода
Метод
Функция
#классы #str #repr
Оба магических метода
__str__
и __repr__
используются для получения строкового представления объекта. Давайте разберемся, в чем же собственно разница между ними.Метод
__str__
используется для создания вывода для конечного пользователя, а __repr__
в основном используется для отладки и разработки. Другими словами, цель __repr__
– быть однозначным, а __str__
– читабельным.Функция
print()
и встроенная функция str()
используют метод __str__
для отображения строкового представления объекта, а вот встроенная функция repr()
использует для этого метод __repr__
.#классы #str #repr
Метод join у строк
У строк есть полезный метод
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
У строк есть полезный метод
str.join()
, который принимает на вход итерируемый объект, элементами которого также должны быть строки.Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
Редирект вывода программы
В
Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
В
contextlib
есть еще один прикольный контекстный менеджер — redirect_stdout
, позволяющий перенаправить стандартный вывод программы.Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
print()
в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout
.Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
Точка входа
В некоторых языках программирования есть функции
Как вариант, многие пишут основную логику программы в обычную функцию
Переменная
Таким образом, программа корректно заработает, только если запустить ее напрямую. Если импортировать ее как модуль в другой скрипт, то условие не сработает.
#main
В некоторых языках программирования есть функции
main()
, с которых начинается выполнение программы. Но в Python весь код исполняется построчно.Как вариант, многие пишут основную логику программы в обычную функцию
main()
, а вызывают ее только в условии if __name__ == '__main__'
. Здесь стоит объяснить отдельно про то, что такое __name__
.Переменная
__name__
— это специальная переменная, которая будет равна '__main__'
, только если файл запускается как основная программа. А при импорте в качестве модуля выставляется равной имени модуля.Таким образом, программа корректно заработает, только если запустить ее напрямую. Если импортировать ее как модуль в другой скрипт, то условие не сработает.
#main
Яндекс Практикум разработал курсы, на которых освоить IT-профессию может каждый, даже без опыта.
Кем на них можно стать?
— Веб-разработчиком
Они создают интерфейс сайтов и веб-приложений — то, с чем взаимодействует пользователь.
— Python-разработчиком
Они пишут «мозг» для сайтов, чтобы они правильно реагировали на действия пользователей, а серверы понимали запросы.
— Инженером по тестированию
Они проверяют код разработчиков, ищут в нём ошибки и исправляют их.
— Мобильным разработчиком
Они пишут приложения для устройств с операционной системой Andriod или iOS.
— Java-разработчиком
Они пишут масштабные проекты с миллионами посетителей: маркет-плейсы, стриминги, сайты крупных корпораций.
— Разработчиком на С++
Они создают разные продукты и программы: от беспилотных автомобилей до веб-браузеров, микроконтроллеров, серверов и видеоигр.
Пройдите первый бесплатный урок →
Кем на них можно стать?
— Веб-разработчиком
Они создают интерфейс сайтов и веб-приложений — то, с чем взаимодействует пользователь.
— Python-разработчиком
Они пишут «мозг» для сайтов, чтобы они правильно реагировали на действия пользователей, а серверы понимали запросы.
— Инженером по тестированию
Они проверяют код разработчиков, ищут в нём ошибки и исправляют их.
— Мобильным разработчиком
Они пишут приложения для устройств с операционной системой Andriod или iOS.
— Java-разработчиком
Они пишут масштабные проекты с миллионами посетителей: маркет-плейсы, стриминги, сайты крупных корпораций.
— Разработчиком на С++
Они создают разные продукты и программы: от беспилотных автомобилей до веб-браузеров, микроконтроллеров, серверов и видеоигр.
Пройдите первый бесплатный урок →
Бесконечность
Вообще
Строковые литералы
Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
#float
Вообще
float
является крайне интересным типом данных и не перестает удивлять своими особенностями. Про значение Not a Number
мы уже писали, а вот сегодня поговорим про infinity
. Строковые литералы
'inf'
и 'infinity'
можно конвертировать в float
, и в результате получается значение бесконечности. Для отрицательной "бесконечности" нужно поставить знак минуса перед словом. Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
#float
Разница между == и is
Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования
Оператор
Но Python в целях производительности кеширует малые числа и короткие строки, поэтому возможны некоторые казусы, как в примере выше.
#тонкости
Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования
==
и is
в приложениях могут возникнуть странные ошибки.Оператор
==
проверяет равенство значений двух объектов. А оператор is
проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.Но Python в целях производительности кеширует малые числа и короткие строки, поэтому возможны некоторые казусы, как в примере выше.
#тонкости