Python School
94.5K subscribers
1.92K photos
5 videos
550 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Функции sleep() и time()

Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.

Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.

Рассмотрим пример использования sleep() для создания промежутка времени. Мы используем функцию time(), чтобы узнать текущее время, и localtime(), чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime() («string from time»), которая возвращает время в виде строки в указанном формате.

В результате интервал между двумя моментами времени составил две секунды.
Новый курс по кибербезопасности от HackerU позволит успешно пройти путь от начинающего до полностью "упакованного" под требования рынка специалиста по информационной безопасности.

По окончанию курса вы получите:
— Навыки управления требованиями ИБ в проектах, а также проведения внешних и внутренних пентестов
— Диплом о профессиональной переподготовке установленного образца
— Карьерные консультации с ИБ-экспертами и HR-специалистами
— Возможность найти новую работу ещё в процессе обучения

Перед стартом программы есть возможность пообщаться с практикующими экспертами курса и порешать первые задачи в формате CTF!

Записывайтесь на консультацию сейчас и получите скидку до 30% на курс: https://is.gd/PshvCW
Модуль geopy

Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:

$ pip install geopy

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

Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Прокачайте свои навыки в сфере IT и аналитики данных — примерьте роль Data Scientist! Участвуйте в бесплатном онлайн-интенсиве, который пройдёт с 19 по 21 июля. Начало — в 21:00 по московскому времени.

Зарегистрируйтесь по ссылке: 👉 https://clc.am/MmuGMQ

За 3 дня вы научитесь:

⚡️ исследовать данные с помощью языка программирования Python;
⚡️ отличать Data Science от Machine Learning и Artificial Intelligence;
⚡️ строить модели для реальных кейсов;
⚡️ находить аномалии в данных;
⚡️ решать реальные задачи, с которыми сталкивается Data Scientist.

В роли спикера выступит ведущий исследователь данных Сбербанка с 7-летним опытом в программировании — Анастасия Борнева.

🎉 Каждый участник, сдавший домашнее задание, получит сертификат на 15 000 рублей для поступления на любой курс Skillbox!
Встроенная функция float в Python

Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод float.

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

В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «//»). Поэтому больше не нужно использовать float для этой цели, теперь float(x)/y можно легко заменить на x/y.
Подсказки типов | Ожидание типа | Type hinting (Python 3.5+) 1 часть

Статические языки программирования заставляют Вас указывать тип каждой переменной, который определяет, сколько места переменная займёт в памяти и что с ней можно сделать. Компьютер использует эту информацию, что-бы скомпилировать программу в очень низкоуровневый машинный язык. Статические языки программирования машины понимают быстрее.
Переменные в этих языках не могут изменять свой тип они статичны. Целое число — это целое число, раз и навсегда.
Подсказки типов | Ожидание типа | Type hinting (Python 3.5+) 2 часть

Динамические языки не заставляют Вас определять тип переменных перед тем, как их использовать.

Утиная типизация: «Если это выглядит как утка и крякает как утка, значит это утка».

Спор о том, какое типизирование python лучше — статическое или динамическое — не умолкают и по сей день и у каждого есть свое мнение на этот счет.

Это личное дело читателя — когда ему нужно вписывать типы, но мне кажется что вы как минимум должны знать о том, что Python 3 поддерживает подсказки типов.
Правдивость различных объектов

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

Легко предсказать, что 0 — тоже false, а остальные числа — true.

Например, следующие выражения эквивалентны. В данном случае my_object — строка, но здесь мог оказаться другой тип (с соответствующими изменениями условий блока if).
Как работают Google и Netflix? Как создать искусственный интеллект наподобие Джарвиса у Железного человека? Узнайте на бесплатных практических вебинарах по программированию!

Регистрация по ссылке: 👉 https://clc.am/ia5DKQ

✔️ Поймёте, как и в каком направлении развиваться в IT-индустрии в 2021 году.
✔️ Выясните, чем Python отличается от других языков программирования и как им пользоваться.
✔️ Напишете первые строчки кода.
✔️ Узнаете, как стать Data Scientist и какие задачи решает машинное обучение.

💣 Во время вебинаров сможете задать вопросы спикерам и получить ответы в прямом эфире. Попрактикуетесь в программировании на нескольких языках.

🎁 Всех участников мастер-классов ждут подарки от Skillbox и партнёров — месяц бесплатного обучения английскому языку в онлайн-школе КЭСПА и полезная книга от издательства МИФ. А если дойдёте до конца марафона, подарим сертификат на 15 000 рублей на любой курс Skillbox!

Спешите зарегистрироваться: https://clc.am/ia5DKQ
Проверка прав доступа через декораторы

Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.

Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Создайте голосового помощника на Python! Начните осваивать востребованный язык программирования и прокачайте навыки. 26–28 июля, в 21:00 по московскому времени участвуйте в онлайн-интенсиве.

Регистрируйтесь бесплатно 👉 https://clc.am/BrBtGg.

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

☝️ Преподавателем будет ведущий исследователь данных в Сбербанке, математик-программист Анастасия Борнева.

⭐️ Все участники получат электронную книгу Кей Петерсон и Дэвида Колба «Век живи — век учись» от издательства «МИФ». А те, кто сдаст домашнее задание, — сертификаты на 5 000 рублей на любой курс Skillbox.

Присоединяйтесь!
Фильтры NEAREST, BILINEAR и BICUBIC в Pillow

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

• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.

С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST.

Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.
Проверка данных при помощи декораторов

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

В данном примере, декоратор only_admins ищет HTTP заголовок X-Auth-Token во входящем запросе и затем проверяет, если он совпадает с секретным токеном администратора, который для простоты мы сделали константой.

Если нет заголовка токена, или если он есть, но не совпадает, то функция abort() из Flask выполняется для генерации ответа 401 и остановки дальнейших запросов. В противном случае запрос может пройти, вызвав при этом декорированную функцию.

Обратите внимание, как в примере функции представления admin_route() используются декораторы app.route и only_admins. Это называется цепью декораторов.
Освойте программирование с нуля! Зарегистрируйтесь и получите бесплатный доступ к онлайн-курсам и интенсивам по программированию от Skillbox на 7 дней.

✔️ Познакомитесь с введением в программирование, веб-вёрсткой и профессией Go-разработчика.

✔️ Научитесь работать с макетами и форматировать код, освоите адаптивную вёрстку.

✔️ Узнаете о тестировании — одном из самых востребованных направлений в сфере IT, где не нужен опыт программирования.

✔️ Автоматически получите доступ к выбранному направлению при регистрации.

Не упустите шанс найти себя в программировании! 👉 https://clc.am/ThpcDA
Хранение хеша и соли

Для хранения можно использовать методы JSON, SQL, CSV и даже простой текстовый файл. Убедитесь, что пароль нигде не сохранен, ведь в этом состоит главная цель — избежать необходимость сохранения действующего пароля в исходном виде.

Если вы ограничены только одним местом для хранения, можете добавить соль и пароль вместе и потом сохранить их. Можно будет разделить их во время чтения, когда вам будет известна длина соли и ключа.
Как выстроить защиту продуктов и систем от кибератак?
На курсе «Специалист по информационной безопасности» от команды HackerU вы получите знания и менторство от лучших специалистов рынка, каждый день отражающих кибератаки и развивающихся в кибербезе.

Чему вы научитесь на курсе?
— Выявлять уязвимости в веб-приложениях, программах, операционных системах и почтовых серверах
— Различные способы отражения кибератак на инфраструктуру
— Администрировать сети и операционные системы и многое другое

Осталось много вопросов по специальности и карьерным возможностям? Записывайтесь на бесплатный пробный урок по кибербезопасности с экспертами курса!

Урок проходит онлайн в закрытой видеоконфе, где вы разбираете roadmap, решаете первые задачи, задаете любые вопросы и получаете ответы.

Записывайтесь на бесплатный пробный урок по ссылке: https://is.gd/PshvCW
Объединение словарей

Допустим, у вас есть словарь со значениями по умолчанию, и вы хотите обновить его параметры. До Python 3.9 лучшим вариантом было скопировать словарь по умолчанию, а затем использовать метод .update().

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

Интересно? На это способен даже 15-и летний школьник, подписанный на канал «У соседа лучше».

Не важно, работаешь ты или зарабатываешь (ага), ~300$ баксов никогда не будут лишними. Особенно, если речь идет всего о паре часов твоего времени. Поверь, оно того стоит.

Подробнее:
https://t.me/joinchat/J6jRK1d1rIBlMzYy
Хеширование паролей Python
Для Python 3.x

Здесь пароли будут хешироваться для последующего сохранения в базе данных.

Тут мы будем использовать salt. salt является случайной последовательностью, добавленной к строке пароля перед использованием хеш-функции.

salt используется для предотвращения перебора по словарю (dictionary attack) и атак радужной таблицы (rainbow tables attacks).
Загляните в мир разработки на Python! Пройдите бесплатный интенсив Skillbox и начните осваивать один из самых распространённых языков программирования.

Регистрируйтесь: 👉 https://clc.am/Flarww.

📌 Освоите азы программирования на Python и разберёте основные элементы языка.
📌 Поработаете с библиотеками PyQT, Kivy, wxWidgets, tkinter и поймёте основы сетевого ПО.
📌 Напишете интерфейс мессенджера на Python на практических занятиях.

⭐️ Спикер интенсива — Михаил Овчинников, специалист с 17-летним опытом в области разработки высоконагруженных систем, обработки больших данных и машинного обучения.

🎁 Сдайте домашнее задание и получите сертификат стоимостью 15 000 рублей на любой онлайн-курс Skillbox!

Ждём вас в прямом эфире со 2 по 4 августа, в 19:00 по московскому времени 😉