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

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

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

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Стеки

Стек — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).

Методы встроенного списка в Python позволяют очень легко использовать список в виде стека. Чтобы добавить элемент на вершину стека, используйте append(). Чтобы извлечь элемент из верхней части стека, используйте pop() без явного индекса.

Кажется, что это не пригодится, но многие задачи хорошо решаются через pop, а главное, junior обязан знать такой простой способ и его применение. На собеседовании может встретится.

#list
Пасхалки

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

 antigravity

откроется веб-браузер с классическим комиксом XKCD, в котором упоминается Python. Но разработчики Python на этом не остановились: внутри пасхалки есть еще одна пасхалка.

Если вы посмотрите на код, то увидите, что в нем определена функция, предназначенная для реализации алгоритма геохеширования XKCD.

В Python много таких секретов от разработчиков: попробуйте, например, запустить команды import this или from __future__ import braces. Если не поняли в чем суть последнего попробуйте поменять braces на что-то другое.
Хочешь понимать основы синтаксиса С++ и разрабатывать многопоточные приложения? Научись этому на бесплатном онлайн-интенсиве, который пройдёт с 3 по 5 июня в 21:00 по московскому времени! 💻

Подробности тут: https://clc.am/bfbn1w.

⚡️ Познакомишься с основными понятиями разработки на С++, принципами сетевых соединений и организацией многопоточного приложения.
⚡️ Установишь среду разработки и применишь стандартную библиотеку.
⚡️ Создашь сервер для чатов.

📢 Спикер онлайн-интенсива: программист с 17-летним опытом, ведущий методист курсов по программированию в Skillbox — Михаил Овчинников.
Он в прямом эфире разберёт работы и ответит на интересующие вопросы.


🎁 Все, кто сдадут домашнее задание, получат сертификат на 15 000 рублей на любой обучающий курс Skillbox.
Библиотека Numpy "Базовые операции"

В Numpy очень просто реализованы простейшие операции: сложение, вычитание, умножение и деление. Единственное — для этого массивы должны быть одинаковыми.

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

Доступны так же математические операции: синус, косинус и подобные.

#numpy
Конь на работеглавный агрегатор необычных и при этом реальных вакансий в Telegram.

Сейчас ищут тех, кто умеет собирать лего, готов объехать 20 стран Европы (дорогу оплачивают) и умеет рисовать в Paint.

Канал трудоустроил каждого 5-го подписчика – подпишитесь и не останетесь без работы: @horseatwork
Библиотека Numpy

При создании массивом мы получаем тип ndarray.

Рассмотрим наиболее часты атрибуты (не методы!) применимые к массивам:

ndim - число измерений (чаще их называют "оси") массива.

shape - размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim.

size - количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape.

dtype - объект, описывающий тип элементов массива

itemsize - размер каждого элемента массива в байтах.

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

#numpy
Перечисления

Python3
поддерживает простой механизм работы с перечислениями. Спасибо классу Enum.

Перечисления удобно использовать для хранения списков констант. Иначе константы беспорядочно расположены в коде.

Из документации по Python 3 можно узнать о том, что перечисление — это набор символических имён, привязанных к уникальным, неизменным значениям. Члены одного перечисления можно сравнивать на идентичность. Перечисления можно перебирать (итерировать).

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

#enum
Создание своего первого графического интерфейса

Библиотека Tkinter предустановлена в Python в качестве стандартного модуля, поэтому нам не нужно устанавливать что-либо для ее использования.

Сначала импортируем Tkinter и создадим окно, в котором мы зададим его название.

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

Label
Чтобы добавить текст в наш предыдущий пример, мы создадим lbl с помощью класса Label.
Затем мы установим позицию в окне с помощью метода grid. Опять же: если он не будет вызван, текст не будет отображаться!

#tkinter
This media is not supported in your browser
VIEW IN TELEGRAM
Когда накодил бота для убийства спамеров в тележке и продал его за $329 000

Авторы сценария:

Никита Колмогоров - создатель @shieldy_bot

1inch - новый владелец бота
Добавление виджета Button

Начнем с добавления кнопки в окно. Кнопка создается и добавляется в окно так же, как и метка.

Обратите внимание, что мы помещаем кнопку во второй столбец окна, что равно 1. Если вы забудете и поместите кнопку в том же столбце, который равен 0, он покажет только кнопку.

Реакция на нажатие кнопок
Для начала мы запишем функцию clicked(), которую нужно выполнить при нажатии кнопки.

Затем мы передадим аргументу command нашу функцию. Обратите внимание: мы пишем clicked, а не clicked() с круглыми скобками. Потому что мы не вызываем, а передаем функцию.

#tkinter
Научитесь проводить тестирование на проникновение и станьте «атакующим» игроком в кибербезопасности!

На новом курсе «Специалист по тестированию на проникновение» от HackerU вы изучите весь необходимый набор инструментов и навыков для анализа защищенности и пентеста.

Вашими менторами станут практикующие пентестеры, которые уже поработали с Тинькофф Банк, Альфа-Банк, Positive Technologies, IBM, BI. ZONE, Insolar.

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

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

Записывайтесь на бесплатный пробный урок и зафиксируйте скидку 40% на обучение: https://is.gd/tylcVE
Настройка размера и шрифта текста

Вы можете задать шрифт текста и его размер. Также можно изменить стиль шрифта. Для этого передайте в аргумент font.

Обратите внимание, что параметр font может быть передан любому виджету. Для того, чтобы поменять его шрифт, он применяется не только к Label, но и к Button.

Изменение цвета текста и фона у Button

Вы можете поменять цвет текста кнопки или любого другого виджета, указывая аргумент fg.
Кроме того, вы можете поменять цвет фона любого виджета, используя свойство bg.

Заметьте, что в данном коде кнопка ничего не делает.

#tkinter
Как из десятков IT-профессий выбрать ту самую, которая подойдет именно мне? А если я гуманитарий? С чего начать? Мне не поздно менять профессию?

Бесплатный профориентационный проект «IT-рентген» от SkillFactory развеет все сомнения и покажет, подходит ли вам сфера IT, а если да — какую профессию лучше выбрать с учетом ваших интересов, знаний и опыта. На пути к новой профессии вам предстоит сделать 4 простых, но важных шага. Готовы?

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

❗️Пройти тест "Какой путь в IT - ваш"https://clc.am/kMc1vQ
Библиотека newspaper3k

Часто приходится парсить статьи? Первое, что приходит на ум, — BeautifulSoup, но newspaper3k дает огромное преимущество.

Он даёт возможность извлекать статьи и связанные с ней мета-данные. То есть, ты можешь получить html-код, авторов и текст статьи. И не придется самому распарсивать статью.

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

pip install newspaper3k

#парсинг #parsing
Библиотека Numpy

Надеемся, что вы плодотворно поработали с возможностями Numpy. Но красивый вывод вы явно не получили.

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

precision — количество отображаемых цифр после запятой (по умолчанию 8).

threshold — количество элементов в массиве, вызывающее обрезание элементов (по умолчанию 1000).

edgeitems — количество элементов в начале и в конце каждой размерности массива (по умолчанию 3).

linewidth — количество символов в строке, после которых осуществляется перенос (по умолчанию 75).

suppress — если True, не печатает маленькие значения в scientific notation (по умолчанию False).

nanstr — строковое представление NaN (по умолчанию 'nan').

infstr — строковое представление inf (по умолчанию 'inf').

#numpy
В предыдущих примерах GUI Python мы ознакомились со способами добавления простых виджетов, а теперь попробуем получить пользовательский ввод, используя класс Entry (текстовое поле Tkinter).

Вы можете получить текст ввода, используя метод get.

Если вы нажмете на кнопку — появится текст «Привет {name} » вместе с введенным текстом в виджете записи.

Каждый раз, когда мы запускаем код, нам нужно нажать на виджет ввода, чтобы настроить фокус на ввод текста, но как насчет автоматической настройки фокуса?
Здесь все очень просто, ведь все, что нам нужно сделать, — это вызвать метод focus.

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

#Tkinter