Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Разбиение строки в список
Вы можете разбить строку на список строк. В этом случае разбиение происходит по символу пробела
Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().
Split также имеет второй параметр, называемый maxsplit, который определяет максимальное количество разбиений. По умолчанию он равен -1 (без ограничений).
Подписывайтесь на канал 👉@pythonofff
howdoi
Зависли над какой-то проблемой и не можете вспомнить её решение? Нужно зайти на StackOverflow, но не хочется покидать терминал?
Тогда вам не обойтись без этого инструмента командной строки:
$ pip install howdoi
Задайте любой вопрос, и он постарается найти ответ на него
Подписывайтесь на канал 👉@pythonofff
geopy
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
$ pip install geopy
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Подписывайтесь на канал 👉@pythonofff
Преобразуем список в словарь при помощи генератора словаря
Для преобразования списка Python в словарь также можно использовать генератор словаря.
Генератор словаря похож на генератор списка в том, что оба они создают новое значение соответствующего типа данных.
Что касается синтаксиса, в генераторе словаря используются фигурные скобки {}, а в генераторе списка — квадратные [ ].
Для начала мы объявили список фруктов (fruits), где хранятся их названия, которые мы хотим перенести в словарь.
Затем мы использовали генератор словаря, чтобы пройтись по каждому элементу в списке fruits. Для каждого фрукта в нашем списке мы добавили элемент в новый словарь. При этом каждому фрукту мы присвоили значение In stock.
Подписывайтесь на канал 👉@pythonofff
Как отформатировать строку с помощью f-строк
F-строки (сокращение от format string) – это новейший метод из поддерживаемых Python 3, поэтому он быстро набирает популярность.
f-строки похожи на метод .format(). Однако они предоставляют более ёмкий способ сделать то же самое, всего лишь добавив к строке букву f в качестве префикса.
Последовательный порядок из метода конкатенации
Модульность метода .format()
Благодаря этим достоинствам все больше и больше разработчиков используют именно этот метод. Кроме того, этот подход легко освоить. Так что, если вы еще новичок в программировании, то f-строки однозначно для вас.
Подписывайтесь на канал 👉@pythonofff
Облегчите перебор нескольких списков с помощью zip()
С помощью встроенной функции zip() мы можем все немного упростить.
Обратите внимание: функция zip() возвращает zip-объект, но с помощью приведения типов вы можете преобразовать его — например, с помощью list(), tuple() или dict().
Подписывайтесь на канал 👉@pythonofff
Удаляем дубликаты из списка в Python
Очень часто мы бы хотели удалить или найти дубликат элемента в списке. Давайте посмотрим, как удалить дубликаты из списка. Лучший подход — преобразовать список в множество. Множества представляют собой неупорядоченную структуру данных с уникальными значениями и не допускают копий.
Подписывайтесь на канал 👉@pythonofff
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Замер времени выполнения куска кода с помощью модуля «timeit».
Модуль timeit позволяет замерить время выполнения любого куска кода.
Большие куски кода не очень удобно, но вот мелкие довольно хорошо. Закидываете вашу строчку внутрь timeit и готово.
Подписывайтесь на канал 👉@pythonofff
Именованные кортежи, как альтернативы классам в Python.
Если нет желания создавать новый класс и предполагаемая структура не слишком сложна и без дополнительных функций, тогда можно использовать именованные кортежи.
Для понимания:
Именованные кортежи определяют имена для каждой позиции в кортеже и позволяют создавать более читаемый и понятный код. Они могут быть использованы в тех же случаях, что и обычные кортежи, а обращаться к полям можно не только по индексу, но и по имени.
Подписывайтесь на канал 👉@pythonofff
Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress.
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Подписывайтесь на канал 👉@pythonofff
Процесс делегирования в Python
Делегирование – это объектно-ориентированный подход, также называемый паттерном проектирования.
Предположим, у вас есть объект x, и вы хотите изменить поведение только одного из его методов. Вы можете создать новый класс, предоставляющий новую реализацию метода, который вы хотите изменить, и делегирующий все остальные методы соответствующим методам объекта x.
В примере показан класс, охватывающий поведение файла и преобразующий данные из нижнего в верхний регистр
Метод write() в классе upcase конвертирует строку из нижнего в верхний регистр до вызова другого метода. Собственно сама делегация осуществляется за счет использования объекта self._out.
Подписывайтесь на канал 👉@pythonofff
Франшиза Самолет Плюс с высоким доходом
Бизнес "под ключ" с полной поддержкой одного из ведущих застройщиков России.
Узнать больше
#реклама
samoletplus.ru
О рекламодателе
Срочно нужны деньги? Займер выручит в любое время!
Первый займ - бесплатно!
Без проверки кредитной истории, просрочек.
Быстрая выдача.
Оформление онлайн!
Перейти на сайт
#реклама
zaymer.ru
О рекламодателе
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode из из модуля urllib.
Подписывайтесь на канал 👉@pythonofff
map
У Python есть хорошая встроенная поддержка функционального программирования. Одной из самых полезных возможностей является функция map(), особенно в сочетании с лямбда-функциями
Здесь map() применяет простую лямбда-функцию на каждом элементе x и возвращает объект map, который можно преобразовать в какой-нибудь итерируемый объект вроде списка или кортежа
Подписывайтесь на канал 👉@pythonofff
Скилл, который нужен разработчикам и архитекторам в крупных компаниях
Сегодня немногие веб-разработчики обладают достаточным опытом для создания отказоустойчивых и масштабируемых архитектур. И именно такие специалисты являются самыми высокооплачиваемыми и востребованными в Google, VK, Yandex, Netflix и других корпорациях.
Изучите работу с высоконагруженными системами на курсе «Highload Architect» от OTUS.
Всего за 5 месяцев вы:
- научитесь использовать решения, которые выдерживают сотни тысяч (и даже миллионы) запросов в секунду;
- сможете правильно оптимизировать работоспособность серверов;
- актуализируйте и систематизируйте знания в сфере HighLoad.
Программа курса полностью актуализирована и заточена под современные требования престижных работодателей. Вы можете заранее бесплатно получить ее, чтобы убедиться, что она вам подходит!
Не упустите возможность получить вакантное место в крупном проекте, пройдите тестирование прямо сейчас и узнайте, готовы ли вы к обучению на курсе: https://vk.cc/crVDjY
re.compile()
С помощью этого метода регулярные выражения компилируются в объекты шаблона и могут использоваться в других методах. Рассмотрим это на примере поиска совпадений с шаблоном.
Подписывайтесь на канал 👉@pythonofff
ASCII-текст
По умолчанию json.dump проверяет, имеет ли ваш текст в словаре кодировку ASCII. Если присутствуют символы, отличные от ASCII, они автоматически экранируются.
Но это не всегда приемлемо. Во многих случаях вы бы хотели сохранить символы Unicode нетронутыми.
Подписывайтесь на канал 👉@pythonofff
Нужен ли разработчику Kubernetes? Определенно! Ведь с Kubernetes можно:
🧑💻 Автоматизировать процессы: приложения в k8s выкатываются и тестируются без участия администраторов, имеют автоматическое вертикальное и горизонтальное масштабирование;
😎 Не только быстро придумывать новые фичи, но и еще быстрее запускать их в работу;
👾 Оперативно подстраиваться под технологические запросы общества и бизнеса и внедрять классные идеи быстрее конкурентов;
💪 Тестировать гипотезы и в случае чего быстрее «возвращать стену», если пользователям не понравилось то или иное обновление.
Больше о программе курса и о том, что вы сможете на нем изучить, написали на сайте ⬅️⠀
Слёрм составил учебную программу с учетом потребностей разработчиков. Вся информация пригодится при работе в реальных проектах. Эксперты Слёрма выжали всю воду и оставили максимум пользы и практики.
Спикеры курса — Марсель Ибраев, System Engineer G42 Cloud и Павел Селиванов, архитектор Yandex Cloud.⠀
Поток со встречами со спикерами, обсуждением заданий в чате с другими участниками и итоговой сертификацией стартует 13 ноября, присоединиться можно по ссылке.
Реклама. ООО «Слёрм» г. Лиски, ОГРН 1193668020545
Метод get() у словарей и его «дефолтный» результат
Немножко теории: метод get() возвращает значение для искомого ключа. Если ключ недоступен, возвращает значение по умолчанию.
Метод get() возвращает значение по ключу если такой ключ присутсвует в списке, если его нет, то метод возвращает дефолтное значение.
Если же мы напишем nameforuserid.get(5454) без указания «дефолтного» значения, то функция вернет None. Довольно удобно и практично.
Подписывайтесь на канал 👉@pythonofff
Как эффективно по отношению к памяти сравнить два неупорядоченных списка
Давайте предположим, что у вас есть два списка, которые содержат одинаковые элементы. Однако эти элементы стоят в разном порядке.
Два списка содержат одни и те же элементы, а вот их порядок отличается. Давайте посмотрим, как мы можем удостовериться, что перед нами два одинаковых списка.
• Мы можем использовать метод collections.Counter
• Можно использовать sorted(), если объекты поддаются порядку.
Подписывайтесь на канал 👉@pythonofff
3 трюка с itertools
Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции – chain. Она позволяет "склеивать" несколько итерируемых элементов в один.
Далее, accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее.
А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция combinations. Вторым аргументом можно задать длину этой самой комбинации.
Подписывайтесь на канал 👉@pythonofff
Получите профессию коммерческого иллюстратора
Contented — крупнейшая профильная онлайн-школа дизайна
по версии Smart Ranking 2023.
Научим создавать авторские иллюстрации от идеи до реализации
за 8 месяцев.
Эксперты-практики из крупнейших дизайн-студий
объяснят процесс и дадут пошаговые инструкции. Вы начнете
создавать иллюстрации, даже если раньше никогда не рисовали.
В конце обучения вы соберете сильное портфолио из 8 работ,
которое поможет выделиться среди соискателей при найме.
Подать заявку
#реклама
contented.ru
О рекламодателе
Знаем, где найти классные игры на Android!
В магазине приложений RuStore доступно более 12 тысяч приложений. В сторе можно скачать не только игры от популярных издателей, но и интересные проекты от российских инди-разработчиков. Приятный бонус: покупать приложения и внутриигровые товары в RuStore можно с помощью российских банковских карт.
Устанавливайте стор на свой смартфон или планшет и скачивайте игры без ограничений!
Установить
#реклама 16+
rustore.ru
О рекламодателе
Курс: Ведение тепличного хозяйства + Диплом агронома!
Переподготовка на агронома за 3 мес. Обучение онлайн. Диплом. Гос. Лицензия.
Ведем прием документов!
Узнать больше
#реклама
academy.dpomipk.ru
О рекламодателе
Дизассемблирование
При запуске программы на python, написанный код преобразуется в байт-код, который затем может быть запущен в интерпретаторе Python. Встроенный модуль dis позволяет дизассемблировать байт-код в удобное представление для просмотра его инструкций. Полный спсиок инструкций байт-кода с описанием можно посмотреть в доке модуля.
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
https://docs.python.org/3/library/dis.html#python-bytecode-instructions
Подписывайтесь на канал 👉@pythonofff
Использование join() с одиночной строкой в качестве ввода
Строка повторяется в Python. Поэтому, когда мы передаем одну строку в качестве входных данных команде join(), ее символы являются повторяющимися элементами.str = 'Hello' print(f'String characters are: {",". join(str)]')
Подписывайтесь на канал 👉@pythonofff
Задача
Представьте, что у вас есть несколько переменных:x = 1
y = 2
l = [x, y]
x += 5
a = [1]
b = [2]
s = [a, b]
a.append(5)
Какой результат вам даст вывод l
и s
?
Подписывайтесь на канал 👉@pythonofff
Как найти все индексы для подстроки?
Метод index() возвращает первый совпавший индекс. Мы можем определить пользовательскую функцию для поиска всех индексов, по которым находится подстрока.
Подписывайтесь на канал 👉@pythonofff