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

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

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

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

Во время собеседования на вакансию
python-разработчика очень часто звучат вопросы про списки и их методы.
Мы собрали для вас часть этих методов.

1. append() - добавляет элемент в конец списка.

2. clear() - удаляет все элементы из списка

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

4. count() - считает, сколько раз в списке встречается переданный аргумент.

#list
This media is not supported in your browser
VIEW IN TELEGRAM
Хочешь погрузиться в атмосферу Data Science и завести полезные знакомства? Приходи на бесплатный ODS Meetup at Elbrus Bootcamp, который пройдет 31 мая в 19:00 по Мск.

ML-инженеры из института Сколтех и биотехнологической компании Biocad выступят с докладами:
💥 Гайд для контрибьютора PyTorch: как, а главное зачем?
💥 Алгоритмы и приложения, помогающие химикам создавать медикаменты

В перерывах между спикерами будет много нетворкинга!🔥 Так что не упусти возможность познакомиться с единомышленниками и обзавестись полезными контактами.

Приходи на встречу в московском кампусе или присоединяйся к онлайн-трансляции. Meetup подходит как для новичков, так и специалистов, которые хотят развиваться и обмениваться опытом с коллегами.

Регистрируйся по ссылке: https://clck.ru/V8h73 Количество мест ограничено!

Ждем тебя на встрече или в прямом эфире 31 мая в 19:00 🚀
Библиотека Numpy

Преимущество и зачем использовать разобрали в предыдущем посте. Теперь углубим свои знания, а позже расскажем про pandas и интеграции с SQL.
Библиотеку требуется установить:

 install numpy

Для создания массива можно использовать методы array или empty. А вместо знакомого range() присутствует более быстрый arange.

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

#numpy
Функции map(), filter() и reduce() используют, чтобы привнести в Python немного функционального программирования.

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

1. map() - функция map перебираeт все элементы в данном итеративном объекте и выполняeт функцию, которую мы передали в качестве аргумента для каждого из них.

2. filter() - Подобно map(), filter() принимает объект функции и итерацию и создает новый список. Как следует из названия, filter() формирует новый список, содержащий только элементы, удовлетворяющие определенному условию.

3. reduce() - reduce работает иначе, чем map() и filter(). Он не возвращает новый список, основанный на функции и итерации, которые мы передали.
Вместо этого он возвращает одно значение. На картинке мы приводим пример сложения чисел. Но это самое простейшее. Можно перемножать, возводить в квадрат и многое другое (и не обязательно с числами).

#iterators
Илон Маск теперь в Телеграм!

Железный человек 21 века, колонизатор Марса, создатель Tesla, основатель PayPal, инженер гражданского огнемета, отправитель первого туриста на Луну.

Канал посвящённый гению, миллиардеру, плейбою и филантропу: @ElonMusk
List Comprehensions

Удаление элемента из списка во время его итерации – это проблема, которая хорошо известна любому опытному разработчику.

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

Одна из таких парадигм – list comprehensions. Генераторы списков часто используют именно для решения подобных проблем, что и показывает реализация кода.

Заметьте, что в примере "забывается" старый список и на его месте появляется новый.

#list
Уже работаешь junior-питонистом и хочешь расти дальше?

Отлично, тогда эта информация для тебя. Компания KTS запускает новый курс «Продвинутый Backend на Python» в своей школе.

KTS занимается разработкой веб-сервисов для крупных компаний: сбер, х5 retail group, ПИК, Mail, VK и других. На курсе преподаватели поделятся опытом создания сложных систем и рассмотрят такие нетривиальные темы, как многопоточность, асинхронность в python и асинхронные веб-фреймворки и много другое.

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

Все подробности по ссылке: https://metaclass.kts.studio/backend


P.S. 2 июня пройдет открытый вебинар, на котором можно будет задать вопросы и познакомиться с преподавателями. Записывайся!)
Стеки

Стек — абстрактный тип данных, представляющий собой список элементов, организованных по принципу 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