Простой Python | Программирование
141K subscribers
2.36K photos
48 videos
1.36K links
Заявки принимаются автоматически.
Лучший образовательный канал по Python.

По всем вопросам: @dimaa_dimaa (реклама)

Ссылка на канал: https://t.me/+T1i5nO0m_h01ZDky
.
РКН: https://vk.cc/cJ5box
Помощь:https://telega.in/c/+T1i5nO0m_h01ZDky
Download Telegram
Минимум/максимум последовательности

Получение минимума последовательности эквивалентно доступу к первому элементу отсортированной последовательности. Максимум немного сложнее. sorted сохраняет порядок, а max возвращает первое встреченное значение. В случае отсутствия дубликатов максимальное значение совпадает с последним элементом отсортированного возврата. Это не так, если есть несколько элементов, которые оцениваются как имеющие максимальное значение.

#практика
😁1
Поиск вложенных последовательностей

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

#практика
reduce

Функция reduce уменьшает итерируемый объект, многократно применяя функцию к следующему элементу итерируемого объекта и совокупному результату на данный момент. В Python 2 эта функция доступна как встроенная. В Python 3 она перемещена в модуль functools.

#практика
Последовательность Фибоначчи

Практический вариант использования генератора — перебор значений бесконечного ряда. В данном коде приведен пример нахождения первых десяти членов последовательности Фибоначчи. Чтобы вывести другое количество членов последовательности, измени параметр range.

#практика
Выражения генератора

В Python можно создавать итераторы генератора, используя синтаксис, подобный comprehension. Если в функцию не обязательно должен передаваться список, ты можешь поместить выражение генератора внутри вызова функции. Это сократит количество символов, улучшит читаемость. Скобки из вызова функции неявно делают твое выражение выражением генератора.

#практика
👍3
Создание нескольких графиков

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

#практика
Рефакторинг кода построения списка

Предположим, у тебя есть сложный код, который создает и возвращает список. Начинает он с пустого списка и многократно добавляет к нему значения. Вместо того чтобы нецелесообразно заменять внутреннюю логику представлением списка, ты можешь превратить всю функцию в генератор на месте, а затем собрать результаты. Если логика является рекурсивной, используй yield from, чтобы включить все значения из рекурсивного вызова в «сглаженный» результат.

#практика
Генератор: отправка объектов

С помощью метода send() ты можешь отправить объект генератору. При первом вызове next(generator) программа переходит к первому оператору yield и возвращает значение total в этой точке, равное 0. В этой точке выполнение генератора приостанавливается. Когда ты вызываешь generator.send(x), интерпретатор берет аргумент x и делает его возвращаемым значением последнего оператора yield, которому присваивается значение. Затем генератор работает как обычно, пока не выдаст следующее значение. При вызове next(generator) генератор останавливается.

#практика
twinx()

В этом примере мы построим синусоидальную кривую и гиперболическую синусоиду на одном графике с общей осью x и разными осью y. Это достигается с помощью команды twinx(). Аналогично можно сделать график с общей осью y с помощью twiny().

#практика
Модуль pyautogui

Для управления мышью и клавиатурой используй модуль pyautogui. Этот модуль в основном используется для автоматизации задач щелчка мышью и нажатия на клавиатуру. Для мыши координаты экрана (0,0) начинаются с верхнего левого угла. Предварительно модуль нужно установить с помощью pip install pyautogui. В коде ты можешь увидеть несколько полезных функций.

#практика
Открытие URL в разных браузерах

Модуль webbrowser поддерживает различные браузеры, используя методы register() и get(). Метод get используется для создания контроллера браузера с использованием пути к определенному исполняемому файлу. Метод register используется для присоединения этих исполняемых файлов к предустановленным типам браузеров для будущего использования, обычно при использовании нескольких типов браузеров.

#практика
Проверка исключения

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

#практика
👍1
Шаблоны проектирования

#теория
👍1
Вывод с помощью template

Шаблоны поддерживают замену на основе $ вместо замены на основе %. Substitute выполняет замену шаблона, возвращая новую строку. Отображение — это любой объект, похожий на словарь, с ключами, соответствующими заполнителям шаблона. В этом примере цена и количество являются заполнителями. Аргументы ключевых слов также можно использовать в качестве заполнителей. Заполнители из ключевых слов имеют приоритет, если присутствуют оба.

#практика
👍2🔥1😁1
Категории паттернов

#теория
Round() в Python 2 и Python 3

При использовании round() в Python 2 для числа, одинаково близкого к двум целым числам, вернется число, наиболее удаленное от 0. Однако в Python 3 функция round() возвращает четное целое число. Кроме этого, в Python возвращаемое значение имеет тип float. В Python 3 же – int.

#практика
Абстрактные классы

Абстрактные базовые классы — это форма проверки интерфейса. Она более строгая, чем отдельные проверки hasattr() для конкретных методов. Определив абстрактный базовый класс, ты можешь определить общий API для набора подклассов. Эта возможность особенно полезна в ситуациях, когда третья сторона собирается предоставить реализации, такие как плагины для приложения. abc помечает методы базового класса как абстрактные, а затем регистрирует конкретные классы как реализации абстрактной базы.

#практика
Черепашья графика

Turtle — это предустановленная библиотека Python, которая позволяет пользователям создавать изображения и фигуры с помощью предоставленного виртуального холста. Экранное перо, которым ты рисуешь, называется черепахой. Данный код позволяет нарисовать ninja twist.

#практика
👍1