Python академия
7.74K subscribers
2.27K photos
4 videos
264 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Асинхронное программирование

Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.

На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.

Подписывайтесь на канал 👉@pythonofff
Станьте веб-разработчиком на Python! Работайте с бэкендом веб-приложений любых масштабов – от прототипов до интернет-магазинов, порталов и сервисов.

Веб-разработчиков на Python активно ищет современный бизнес: стартапы, небольшие и средние частные компании. 

👉🏻На курсе вы освоите HTML и CSS, выучите Python – язык с консистентным синтаксисом, единообразной стандартной библиотекой, фреймворками, в том числе Django. Прокачаетесь в алгоритмах, архитектуре, познакомитесь с базой данных SQL и сопутствующими инструментами: командной строкой, Poetry, Git. Напишите 4 рабочих проекта – крутое портфолио!

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

Заходите и пробуйте наш формат
Библиотека JmesPath

Как вы уже заметили работать с json файлами в python очень удобно, ведь они отлично конвертируется в словарь. Также мы разобрали полезную библиотеку json, поэтому еще раз говорить о ней не будем.

Но вот нам надо получить данные из файла. А формат json, как правило имеет множество вложений. Искать что-то нужное можно, но не всегда это удобно и красиво (а дзен Python говорит, что красота имеет значение)

JmesPath облегчает работу в несколько раз. Вместо file['a']['b']['c'] можно написать jmespath.search('a.b.c', file). Кажется стало длиннее, но это потому что мы взяли мало элементов, и согласитесь a.b.c выглядит лучше. Даже отредактировать в случае чего будет проще.

Подписывайтесь на канал 👉@pythonofff
Как сравнить строки без учета регистра в Python?

Есть несколько способов сравнить строки без учета регистра в Python:

Использовать метод .casefold() чтобы игнорировать регистр
Привести обе строки к заглавным или строчным, используя lower() или upper() для сравниваемых строк

Пример кода.

Подписывайтесь на канал 👉@pythonofff
Библиотека schedule

Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.

Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам.

Библиотеку необходимо установить:

install schedule

В примере используется seconds, но можно использовать minutes, hour, day.at("8:00"), monday, minute.at(":17"). Если добавлять at, то указываем во сколько именно произойдет событие.

Подписывайтесь на канал 👉@pythonofff
Библиотека Progressbar

Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение прогресса, чтобы пользователь не беспокоился, что программа не отвечает.

В первую очередь это касается синхронных приложений. Ведь, если наш код выполняет что-то одно, то на другие действия он не будет реагировать, ставя их в очередь. Ну и еще один вариант показывать, что программа не виснет, а думает, при этом не обязательно показывать прогресс.

Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас.

Подписывайтесь на канал 👉@pythonofff
Запись на курс продлена до 15 апреля. Есть ознакомительный доступ!

После 5-месячного онлайн-курса «Python для пентестера» вы сможете:

✔️ Эффективно использовать базы данных и сеть Интернет;
✔️ Получать данные от сайтов в автоматическом режиме;
✔️ С нуля писать прикладные программы на Python.

Ознакомительный доступ

Преимущества онлайн-курса «Python для пентестера»:

• Понятные и наглядные учебные материалы с информацией для выполнения ДЗ;
• Проверка ДЗ вручную – наставник поможет улучшить написанный вами код;
• Помощь преподавателей при выполнении заданий или в изучении теории;
• Групповой чат в Telegram с другими учениками, проходящими курс;
• Опытные разработчики – команда Codeby School, лидер по информационной безопасности в RU-сегменте.

Если в течение 14 дней вы поймёте, что курс вам не подходит – вы сможете вернуть 100% средств. 

Подробное описание https://python-eh.ru/
Как распарсить строку json в Python?

Для того, чтобы распарсить строку json, мы можем перевести её в читаемый для python'а формат dict с помощью метода .loads()

Примемр кода.

Подписывайтесь на канал 👉@pythonofff
Как открыть zip файл в Python?

Чтобы открыть zip-файл в Python, вы можете воспользоваться стандартной библиотекой zipfile

Примемр кода.

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

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

float('infinity') или float('inf') для получения максимально возможного числа

float('-infinity') или float('-inf') для получения минимально возможного числа.

Не работает с int, требуется использовать именно float.

Подписывайтесь на канал 👉@pythonofff
hex, oct, bin

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

Из 10-ричной:
hex - перевод в 16-ричную систему
oct - перевод в 8-ричную систему
bin - перевод в 2-ичную систему

А из любой системы счисления можно получить число максимально простым способом:
int(number, base)

Подписывайтесь на канал 👉@pythonofff
Регулярные выражения

Метод sub позволяет заменить в строке по шаблону на нужный нам текст.

repl, string, max=0)

pattern - шаблон
repl - на что заменяем
string - строка по которой ищем
max - сколько раз заменяем

Соответственно, этот метод возвращает нужную нам строку.

Подписывайтесь на канал 👉@pythonofff
Как создать объекты класса через цикл в Python?

Чтобы создать объекты класса через цикл, мы воспользуемся примерным классом Axes и модулем random.

Примемр кода.

Подписывайтесь на канал 👉@pythonofff
Регулярные выражения

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

В python для этого есть встроенная возможность, вы можете указать как флаг re.DEBUG. По названию видно, что данный flag помогает дебажить регулярные выражения.

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

Подписывайтесь на канал 👉@pythonofff
Как удалить дубликаты из списка в python?

Самый простой способ для удаления дубликатов - использование set(), но есть и другие варианты. Например, создание нового массива и сравнение добавляемых значений.

Подписывайтесь на канал 👉@pythonofff
Библиотека Flask

Если вы работали с запросами, к примеру на библиотеке request, то знаете, что существуют несколько видов запросов.

К примеру, в браузере при получении страницы это метод GET. Когда вы отправляете пароль и логин серверу (или другие данные) - POST. Кроме этого существуют запросы сугубо для программ, а не для браузера.

Какие есть методы?
Основных 4:
GET — получение ресурса
POST — отправить данные
PUT — обновление данных
DELETE — удаление данных

Flask позволяет обрабатывать данные запросы посредством добавления аргумента methods в декоратор.

Подписывайтесь на канал 👉@pythonofff
Подборка каналов для IT специалистов 🎯


Вакансии 📌
https://t.me/progjob Вакансии для программистов

Системное администрирование 📌
https://t.me/i_DevOps Все для DevOps
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 Чат системных администраторов

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

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика

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

Программирование, Биг дата, книги 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/coddy_academy Академия кода

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

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

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

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Арбитраж трафика 📌
https://t.me/partnerochkin CPA и арбитраж трафика

Крипта 📌
https://t.me/bitkoinoff Новости криптовалют
Важные методы в Python, которые должен знать каждый python разработчик.

abs() - возвращает модуль переданного параметра.

all() - функция возвращает значение True, если все элементы в итерируемом объекте - истинны. В противном случае, она возвращает значение False.

any() - функция возвращает True, если какой-либо (любой) элемент в итерируемом объекте является истинным True. В противном случае, any() возвращает значение False.

ascii() - возвращает строку, содержащую печатное представление объекта, и экранирует символы, отличные от ASCII, в строке с помощью экранирования \ x, \ u или \ U.

bin() - функция преобразует целое число в двоичную строку с префиксом 0b.

Подписывайтесь на канал 👉@pythonofff
Функция sum()

Как бы вы решили задачу получения суммы элементов списка без обхода элементов в цикле?

Это можно сделать с помощью стандартной функции sum().

Cинтакс функции sum():
start)


Параметры sum():
iterable - итерируемые типы (list ,dict, tuple, и.т.д.)
start - (необязательно) значение этого параметра прибавляется к уже готовой сумме элементов iterable. По умолчанию значение этого параметра 0.

Возвращаемое значение из sum():
sum() возвращает сумму start и элементов всех последующих элементов.

Подписывайтесь на канал 👉@pythonofff
Mодуль cmath

Функции в математическом модуле стандартной библиотеки Python обрабатывают числа с плавающей запятой. Для комплексных чисел библиотека Python содержит модуль cmath.

📌Функция polar():
Эта функция возвращает полярное представление декартовой записи комплексного числа. Возвращаемое значение - это кортеж, состоящий из модуля и фазы.

📌Функция phase():
Эта функция возвращает угол против часовой стрелки между осью x и сегментом, соединяющим точку с исходной точкой. Угол представлен в радианах и находится между π и -π.

📌Функция rect():
Эта функция возвращает декартово представление комплексного числа, представленного в полярной форме, то есть по модулю и фазе.

📌Функция sin():
Эта функция возвращает тригонометрическое соотношение синуса фазового угла, представленного в радианах.

Подписывайтесь на канал 👉@pythonofff
Как удалить элемент из словаря в python по ключу?

Вы можете использовать del <Список>["<Ключ>"]

costs = {
"The Mist" : 13,
"Mile 81" : 12,
"11/22/63" : 17,
"The Green Mile" : 14,
"Fairy Tale" : 10,
"End of Watch" : 18
}

del costs["Mile 81"]

print(costs)


# Вывод : {'The Mist': 13, '11/22/63': 17, 'The Green Mile': 14, 'Fairy Tale': 10, 'End of Watch': 18}

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