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

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

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

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Tkinter, всплывающее окно

Чтобы показать всплывающее окно с помощью Tkinter, используется класс messagebox.

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

showinfo - вывести информацию;
showerror - вывести ошибку;
showwarning - вывести предупреждение.

Первый аргумент - заголовок, второй - текст

В примере, когда вы нажмете на кнопку появится информационное окно.

#tkinter
Нужны junior и middle программисты на работу с зарплатой от 3.000$!

Ищем:
- Front-end разработчиков
- Back-end разработчиков
- Game Developer
- Android разработчики
- iOS разработчики


IT вакансии для всех — берут и с опытом, и без!

UPD: на канале выкладывают вакансии от HP, Oracle, DELL, IBM
Добавление SpinBox

Для создания виджета спинбокса - выбор числа в диапазоне (используем к примеру для задания возраста) мы используем крем класс Spinbox, и передаем параметры from и to, чтобы указать диапазон номеров.
Кроме того, вы можете указать ширину виджета с помощью параметра width

Вы можете указать числа для Spinbox, вместо использования всего диапазона следующим образом:
spin = Spinbox(window, values=(2, 8, 11), width=5)
Виджет покажет только эти 3 числа: 2, 8 и 11.

Благодаря последнему можно создавать нужный промежуток через range()

#tkinter
Рекомендация на 30 лет вперёд: следите за технологиями и IT. Если 5 лет назад о крипте говорили только гики, то сегодня на ней зарабатывают даже домохозяйки.

Да и знать, куда идёт рынок – 100% способ быть на плаву даже в кризис, когда все беднеют. Раньше для этого приходилось шерстить сотни источников, а теперь есть канал Артёма Бородатюка.

Он на своём примере показал, как создать 10 айти-компаний БЕЗ ИНВЕСТИЦИЙ. После подписки вы узнаете:

• как стартовать в IT с нуля — пошаговая инструкция

• как проверить бизнес-идею и не слить свои личные сбережения — все способы

• где легализовали штучное мясо и можно ли на этом заработать — полная информация

Этот канал действительно стоит держать в подписках. Вступайте: t.me/artemborodatiuk
Библиотека pydantic

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

С ее помощью можно не писать однотипный код и оставить все нюансы на библиотеку. И еще небольшой плюс: ее удобно отлаживать и получать значения.
Уже обладаете базовыми навыками программирования и планируете развиваться в IT? Попробуйте освоить DevOps. Познакомьтесь с понятиями Docker, CI и Kubernetes за 3 дня на бесплатном онлайн-интенсиве: 🔜 https://clc.am/HBjwaw.

🔥 Спикер занятий — Владимир Утратенко, Engineering Manager в «Сравни.ру», соорганизатор сообщества DevOps Moscow и конференции DevOpsDays Moscow.

Вы разберётесь в DevOps-инженерии и научитесь:

✔️ собирать контейнер с приложением и запускать его при помощи Docker-compose;
✔️ настраивать непрерывную интеграцию (CI);
✔️ работать с сервисом Kubernetes.

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

📅 Используйте шанс! Ждём в прямом эфире 21–23 июня, в 19:00 по московскому времени.
Библиотека showballstemmer

Работали
когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь находить по минимальному запросу.

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

Библиотека showballstemmer и занимается тем, что определяет основу слова, что делает поиск более точным. А главное — библиотека мало потребляет, а результат получается намного лучше.

В начале следует импортировать модуль требуемого языка, к примеру вот модули английского, русского и французского соответственно: EnglishStemmer, FrenchStemmer, RussianStemmer
Друзья, в последнее время я больше сотни раз слышал как вы просили сделать крутой курс по Python для начинающих.

И вот мы запускаем курс вместе с Машей Чакчуриной (автор канала @python_in_depth).

Коротко и по делу:
- Пройдя курс вы сможете писать на Python и устроиться на работу стажером/джуном;
- Курс написан практиком с многолетним опытом работы (корпорации/стартапы);
- Всего 3 000 рублей.

Формат:
Курс размещен на платформе Stepik, прошел аудит платформы и одобрен ей.

В курс входят:
🔹 статьи,
🔹 задачи с автоматической проверкой,
🔹 поддержка преподавателей в комментариях. Отвечают в течение двух дней.

Программа
Курс состоит из 12 модулей, охватывающих темы: арифметика и числа, структуры данных (словари, списки, множества, ...), условия, циклы, функции, модули и классы.

Расписание
Проходить курс можно в своем темпе, дедлайнов нет. Доступ к материалам остается навсегда.

Что ещё
Если вы пройдете курс до конца, то дополнительно получите подборку бесплатных материалов для дальнейшего развития.

Для кого этот курс

Курс подойдет, если:
🔹 вы еще никогда не писали программы и хотите попробовать,
🔹 вы уже работаете в IT (делаете продукты, аналитику, тестируете руками...), но не пишете код.
🔹 вы уже учились писать программы, но хотите систематизировать знания (нет интуиции насчет синтаксиса, понимания, в каких ситуациях использовать условия и циклы, как под задачу выбирать структуры данных).

Результат:
Вы разберетесь в синтаксисе Python и получите интуицию насчет его использования. Научитесь работать со структурами данных и разберетесь, в каких ситуациях они применяются. Узнаете, как и в каких случаях использовать условия и разные виды циклов.

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

Цена:
До 22 июня — 3 000 рублей. Дальше — дороже. С 23 июня цена поднимется до 4 500.

🔥Бонус для самых быстрых
При покупке сегодня и завтра, мы добавим вас в чат участников обучения. Вместе намного веселее учиться и обсуждать код🤘

Записаться https://stepik.org/z/85388

Также, по всем вопросам можете писать админу @Aleksei и автору курса @chakchurina
Добавление виджета Progressbar

Чтобы создать данный виджет, используйте класс Progressbar. Получить его можно немного непривычным способом:
 tkinter.ttk import Progressbar
Инициализировать класс не составит никаких проблем
 = Progressbar(window, length=200)

Установите значение progressbar можно таким образом:
 = 70
Вы можете установить это значение на основе любого процесса или при выполнении задачи.

Изменение цвета Progressbar

Изменение цвета происходит немного сложнее, чем обычно. Сначала нужно создать стиль (импортировав из его из модуля ttk) и задать цвет фона, а затем настроить созданный стиль на Progressbar.

#tkinter
Python School
​Друзья, в последнее время я больше сотни раз слышал как вы просили сделать крутой курс по Python для начинающих. И вот мы запускаем курс вместе с Машей Чакчуриной (автор канала @python_in_depth). Коротко и по делу: - Пройдя курс вы сможете писать на Python…
Ура! Вот и почти собралась первая группа, я счастлив!

Для всех, кто уже оплатил - напишите мне @Aleksei следующее сообщение и я добавлю вас в чат потока:
1. Имя
2. Цель на курс
3. Чек об оплате (информацию при оплате, чтобы мы могли сверить со Stepik)

Для тех, кто еще не успел - последние дни по 3 000 рублей, поторопитесь, будет огонь🔥

Еще раз прочитать про наш супер курс можно тут https://t.me/PythonAA/263
Записаться https://stepik.org/z/85388
Библиотека Numpy. Манипуляции с формой

Как
мы уже говорили у массива можно посмотреть его форму через атрибут shape. Но его можно изменить, вместе с этим изменится и форма массива. Как это работает?

Сначала массив будет приведен к одномерному, а после изменится так, как мы его зададим. Мы можем сделать массив одномерным через метод revel(). Аналогом изменения атрибута служит метод reshape()

Еще один метод для манипуляции с формой - transpose(). Он берет столбы и превращает в строки.

#numpy
Как стать профессиональным хакером и тестировать системы и продукты компаний на прочность?

Команда практикующих пентестеров HackerU разработала программу обучения, где 80% практики и 100% поддержки от менторов обеспечат старт в профессии «Специалист по тестированию на проникновение».

По окончанию курса вас ждёт:
получение диплома о проф. переподготовке, 2500+ открытых вакансий и проектов по кибербезопасности, карьерная поддержка от HackerU в лице экспертов и HR, а также доход уже на старте от 80к в месяц!

Хотите начать прямо сейчас? Мы ждём всех на бесплатной консультации с экспертом-пентестером, в которую входит:
— разбор roadmap по профессиям в ИБ
— первые задачи в формате киберсоревнований CTF
— тестирование, определяющее точку вашего старта
— и ответы на ваши вопросы от эксперта

Пройдите бесплатную консультацию с экспертом и зафиксируйте стоимость курса со скидкой в 30%!

Регистрируйтесь на консультацию по ссылке: https://is.gd/tylcVE
Библиотека Numpy. Объединение массивов

В данных нужно не только изменять форму, но и объединять с другими данными. Numpy позволяет при помощи различных методов очень удобно объединять массивы. К примеру, по осям.

Для объединения используется методы:

hstack - объединяет массивы по первым осям
vstack - объединяет массивы по последним осям

Есть абсолютно такие же методы (привели другое более понятное описание, но методы идентичны согласно официальной документации):

column_stack - объединяет столбцы в строки
row_stack - объединяет строки в столбцы

Если вам не совсем понятно, то посмотрите на пример кода и протестируйте методы сами.
#numpy
Библиотека Numpy. Разбиение массива

В прошлом посте разобрали объединение массивов. Но кроме этого, их приходится еще и делить. Разумеется, нам нужно не банальное деление через срезы, а более гибкое. Для этого в Numpy представлено два метода:

hsplit - разбивает вдоль горизонтальной оси
vsplit - разбивает вдоль вертикальной оси
array_split - более общий, он позволяет указать вдоль какой оси произойдет разбиение.

#numpy
Библиотека Numpy. Копии и представления

Ранее мы уже говорили про такую проблему со списками, когда при присваивании новой переменной и последующем изменении изначальный список тоже меняется. Такая же ситуация происходит и в numpy. По умолчанию мы не создаем новый объект, а лишь передаем ссылку на него.

Поскольку Numpy более гибкий, то и инструментов у него больше:
Представление (поверхностное копирование) и глубокое копирование.

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

Глубокое копирование - создается новый объект, который не имеет ничего общего со старым (кроме набора данных, но хранятся они уже в разных ячейках памяти)

#numpy
TKinter. Добавление панели меню

Для добавления панели меню, используйте класс Menu

Сначала мы создаем меню, затем добавляем наш первый пункт подменю. Можно добавить пункты в любое меню с помощью метода add_cascade(). Можно добавить столько пунктов меню, сколько захотите.

Теперь мы добавляем еще один пункт меню “Изменить” с разделителем меню. Вы можете заметить пунктирную линию в начале. Если вы нажмете на эту строку, она отобразит пункты меню в небольшом отдельном окне.

Можно отключить эту функцию, с помощью tearoff подобным образом:
 = Menu(menu, tearoff=0)

#tkinter
TKinter. Вкладки

Сначала с помощью класса Notebook создается элемент управления вкладкой. Потом создается вкладка через класс Frame.

Далее добавляйте эту вкладку в элемент управления вкладками. Запакуйте элемент управления вкладкой, чтобы он стал видимым в окне.

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

#tkinter