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

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

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

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Библиотека 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
Добавление виджета Combobox

Чтобы добавить виджет поля с выпадающем списком, используйте класс Combobox.

Как видите с примера, мы добавляем элементы combobox, используя значения кортежа - tuple.

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

Чтобы получить выбранный элемент, вы можете использовать метод get

Не забывайте, что вы можете добавлять новые пункты к примеру по нажатию кнопки!

#tkinter
🔖 Хотите освоить C++ с нуля? Получите первые практические навыки 17-18 июня на открытом интенсиве «HTTPS и треды в С++. От простого к прекрасному».

За два дня вы настроите свой http-сервер и разберете его «от и до», произведете все необходимые замеры и сделаете сервер супер быстрым. Занятие станет наглядным примером к тому, чем же все-таки язык С++ лучше других.

После интенсива вас будет ждать еще больше инструментов и практики на онлайн-курсе «C++ Developer. Basic» от OTUS.

🔗 Регистрация на занятие https://otus.pw/LzAl/