Python академия
7.73K subscribers
2.32K photos
5 videos
269 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Проверка строки на палиндром

Простой вариант этого кода проверяет, является ли слово без пробелов и знаков препинания, написанное в одном регистре, палиндромом.

Более сложный вариант, который сможет проверить строку «А роза упала на лапу Азора», предлагаем написать самостоятельно. Общая идея: свести сложную строку к простой, хоть и длинной 'арозаупаланалапуазора'. Вам пригодятся функции строк .lower(), .join(), а также, возможно, преобразование строки в список.

Подписывайтесь на канал 👉@pythonofff
👍2
🔥Podlodka Python Crew — это онлайн-конференции по самым актуальным темам для питонистов.

Разбираем сложные вещи простыми словами, без воды, с уклоном на практику. Сессии проходят в удобное время — утром и вечером.

С 17 по 21 марта пройдет сезон, посвященный оптимизации работы Python-приложений. Разбираем профилирование, внутренности CPython и техники ускорения кода.

🎯Что в программе?

Оптимизации, которые вы могли упустить — Александр Кучин (Литрес) расскажет, какие скрытые проблемы могут замедлять код и как их исправить 🚀

Как работает CPython — от запуска скрипта до управления памятью — Василий Рябов разберет, как Python читает и выполняет код, управляет памятью и garbage collection 📌

Своя Игра: уровни глубины знаний Python-разработчика — Нина Лукина и Евгений Афонасьев в формате викторины объяснят, как Python работает под капотом. Это будет эпично 🎮

Профилирование на Python — Василий Исаев (Точка) объяснит, как находить узкие места в коде и повышать его производительность с помощью профилирования 💡

Подходы, которые можно внедрить сразу после конференции!

🔗 Подробности и билеты: https://podlodka.io/pythoncrew
👍1
Транспонирование матрицы

В простейшем случае двумерная матрица может быть задана списком из нескольких списков одинаковой длины, которые представляют собой строки матрицы. Если вам требуется «повернуть на 90 градусов» такую матрицу или превратить строки в столбцы (транспонировать, как говорят математики)

Обратите внимание, что в итоговом списке элементами (то есть строками новой матрицы) будут кортежи — так работает используемая здесь функция zip ().

Подписывайтесь на канал 👉@pythonofff
👍1
Проверка на дубликаты

Этот простой скрипт проверяет, содержатся ли в списке повторяющиеся значения (дубликаты). Используется свойство множеств set, которые могут содержать только уникальные элементы.

Вместо списков могут быть и кортежи, и словари. В последнем случае проверка будет выполняться только среди ключей словаря.

Подписывайтесь на канал 👉@pythonofff
👍4
Преобразование изменяемых данных в неизменяемые

Изменяемые данные (например, словари или списки) — это структуры, к которым могут быть добавлены новые значения.

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.

Подписывайтесь на канал 👉@pythonofff
👍3
Counter

Ещё один прекрасный модуль из стандартной библиотеки — collections, и я хотел бы познакомить вас с collections.Counter. Используя Counter, легко получить счётчик списка. Это полезно для получения общего количества значений в данных, нулевого счёта данных и просмотра уникальных значений. В counter есть множество функций, которых нет в Pandas Series, что делает его значительно полезнее в определённых ситуациях

Подписывайтесь на канал 👉@pythonofff
👍1
Профилирование — это процесс, который помогает при работе с данными и их обработке.

Пожалуй, одна из самых известных Python-библиотек для этого – Pandas. Данная библиотека является довольно понятной в использовании и благодаря ей можно быстро выполнять анализ данных.

Кроме того, Pandas имеет встроенную функцию .plot() как часть класса DataFrame, что позволяет демонстрировать на графиках обрабатываемые данные.

Подписывайтесь на канал 👉@pythonofff
👍2
Подсказки типа

Python — это язык с динамической типизацией. Вам не нужно указывать тип данных при определении переменных, функций, классов и т.д.

Такой прием сокращает время разработки. Однако есть и более страшные вещи, чем ошибка при выполнении, вызванная простой проблемой ввода.

Подписывайтесь на канал 👉@pythonofff
👍51
Библиотека schedule: планировщик задач

Библиотека schedule — это гибкая библиотека для создания планировщика задач в Python. Она позволяет создавать задачи, которые будут выполняться с определенным интервалом времени. Настройка этого интервала полностью зависит от потребностей пользователя и может быть установлена по его усмотрению. Эти задачи будут выполняться до тех пор, пока пользователь не выключит приложение.

Вместо того, чтобы создавать свой собственный таймер, можно воспользоваться библиотекой schedule, которая предоставляет удобный и понятный интерфейс для планирования задач. Это делает процесс планировки задач более простым и понятным не только для вас, но и для других разработчиков.

Для начала использования библиотеки необходимо установить ее с помощью команды pip install schedule. После установки можно приступать к созданию задач с заданным интервалом выполнения. В примере используется интервал в секундах, но можно также использовать интервалы в минутах, часах, определенный день недели, конкретное время и т.д.


import schedule
import time

def job():
print("Task is running...")

schedule.every(10).seconds.do(job)

while True:
schedule.run_pending()
time.sleep(1)


В данном примере создается задача, которая будет выполняться каждые 10 секунд. Можно также использовать методы .minutes, .hour, .day.at("8:00"), .monday, .minute.at(":17") для более гибкого планирования задач. Подробнее о возможностях библиотеки schedule можно узнать из ее официальной документации.

Подписывайтесь на канал 👉@pythonofff
👍31
sh

Python — это отличный скриптовый язык. Иногда использование стандартных библиотек os и subprocess становится настоящей головной болью.

А библиотека sh является отличной альтернативой.

С ней вы сможете вызывать любую программу как обычную функцию — это крайне полезно для автоматизации рабочего процесса и задач, причем все делается в самом Python.

Подписывайтесь на канал 👉@pythonofff
👍6
Что такое аннотации типов?

Аннотации типов – это новая возможность, описанная в PEP484, которая позволяет добавлять подсказки о типах переменных. Они используются, чтобы информировать читателя кода, каким должен быть тип переменной.

Это придаёт немного статический вид коду на динамически типизированном Python. Достигается это синтаксисом: <тип> после инициализации / объявления переменной.

Подписывайтесь на канал 👉@pythonofff
👍4
Передавайте в функцию сколько угодно элементов — используйте kwargs

Если при разработке программы нужно выполнить несколько похожих действий, то лучшее решение — определить функции для многоразового использования кода. Для этого вызовите функцию с аргументом. Но что делать, если аргументы функции определены, а вам нужно передать больше значений? Для этого можно использовать kwargs — функции для именованных аргументов.

Подписывайтесь на канал 👉@pythonofff
👍3
Упростите использование операторов сравнения

Использовать все операторы сравнения для одного класса может быть довольно сложно, учитывая, что их немало: It, le, gt или ge. Но есть ли более простой способ сделать это? Здесь поможет functools.total.ordering

Подписывайтесь на канал 👉@pythonofff
4
pprint

Стандартная функцияprint в Python знает свое дело. Но попробуйте вывести на печать крупный и вложенный объект, и вас ждет сплошное разочарование.

Вот здесь-то и приходит на помощь модуль pretty-print из стандартной библиотеки. Он выводит сложно-структурированные объекты в удобочитаемом виде.

Настоящий must-have для любого Python-разработчика, имеющего дело с нетривиальными структурами данных.

Подписывайтесь на канал 👉@pythonofff
👍8
Комбинации вложенных списков

Пожалуй, одна из моих любимых библиотек в Python — это itertools. Чтобы преобразить код, содержащий десятки списков, в глубоко вложенный список, достаточно нескольких манипуляций. itertools именно то, что вам нужно, чтобы решить эту задачу.

Подписывайтесь на канал 👉@pythonofff
👍51
inspect

Модуль inspect идеален для понимания общего «закулисья» Python. А еще вы можете вызывать его методы!

Пример кода ниже использует inspect.getsource() для вывода собственного номера строки. А inspect.getmodule() используется для печати модуля, в котором он был определен.

Последняя строка кода выводит собственный номер строки.

Подписывайтесь на канал 👉@pythonofff
👍3
Ограничьте использование процессора и памяти

Если вы не хотите оптимизировать память вашей программы или корректировать работу процессора, то можно просто установить лимиты. К счастью, в Python для этого есть специальная библиотека

Подписывайтесь на канал 👉@pythonofff
👍2
Подборка Telegram каналов для программистов

https://t.me/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/lifeproger Жизнь программиста. Авторский канал.
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин

https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://t.me/Excel_lifehack

https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
collections

В Python есть отличные встроенные типы данных, но иногда они ведут себя не так, как вам бы хотелось.

К счастью, в стандартной библиотеке Python присутствует модуль collections. Это полезное дополнение предлагает расширенные типы данных.

Подписывайтесь на канал 👉@pythonofff
Задание определенной точности

Иногда нам нужно указать количество знаков после запятой в числе. В такой ситуации мы используем все ту же функцию float(), а после нее — функцию format(), чтобы определить количество десятичных знаков в нашем числе.

В данном примере мы работаем со строкой «6.759104». Нам нужно преобразовать эту строку в число с плавающей запятой и оставить только 4 цифры после запятой.

Подписывайтесь на канал 👉@pythonofff
👍2