Pythoner
7.23K subscribers
862 photos
27 videos
4 files
656 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
🔎Генераторы являются одной из мощных возможностей языка Python. Они позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти.

➡️Что такое генераторы?

Генераторы в Python - это функции, которые возвращают последовательность значений во время выполнения. Они работают по принципу "ленивого вычисления", то есть значения генерируются по мере необходимости. Генераторы используют ключевое слово yield для возврата значений вместо return, как это делается в обычных функциях.

➡️Преимущества генераторов

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

➡️Как использовать генераторы?

Для создания генератора в Python нужно определить функцию, внутри которой будет использоваться ключевое слово yield. Когда вызывается этот генератор, он возвращает итерируемый объект, который можно использовать в циклах for или получать значения с помощью функции next(). Каждый вызов yield возвращает значение из генератора и "замораживает" его состояние, позволяя продолжить выполнение с того же места в следующий раз.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥43
➡️Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.

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

➡️Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥2
➡️PySimpleGUI — это популярный фреймворк для создания простых графических интерфейсов пользователя.
Он позволяет быстро создавать интерфейсы при помощи Python, без необходимости изучать сложные GUI библиотеки, такие как
Tkinter, Qt или wxPython.

🔎PySimpleGUI широко используется для создания небольших утилит и инструментов с GUI, например:
— Простые GUI для скриптов автоматизации.
— Инструменты для обработки и визуализации данных.
— Маленькие вспомогательные приложения для повседневных задач.

➡️Основные преимущества PySimpleGUI:

💬Простой и интуитивно понятный синтаксис.
💬Кроссплатформенность: работает на Windows, MacOS, Linux.
💬Встроенная поддержка многих виджетов и тем оформления.
💬Автоматическое размещение элементов GUI.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥3
➡️Давайте создадим Python-файл со следующим скриптом для проверки переменных. Для чтения значений переменных мы используем модуль os, а модуль sys — для прекращения работы приложения.

➡️Бесконечный цикл while непрерывно принимает от пользователя имена переменных и проверяет их значения до тех пор, пока пользователь не введёт имя переменной, которой не присвоено значение.

➡️Если пользователь вводит имя переменной окружения, которой присвоено значение, это значение выводится, если же нет — выводится соответствующее сообщение и процесс останавливается.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥32
🤣24😁8😢7🔥1
🔎В Python - Iterable представляет собой объект, который может быть перебран, то есть в котором можно пройтись по его элементам поочередно. Это может быть список, кортеж, строка или другой тип данных, который поддерживает итерацию.

➡️Когда мы используем цикл for в Python для перебора элементов, он фактически работает с iterable объектами. Например, если у нас есть список чисел numbers = [1, 2, 3, 4, 5], мы можем перебрать его элементы следующим образом на фото.

⬆️В примере на фото numbers является iterable объектом, и цикл for позволяет нам последовательно обойти все элементы списка.

➡️Iterable в Python обеспечивает удобство итерации по данным, что очень полезно при работе с коллекциями элементов разного типа. Важно помнить, что не все объекты являются iterable - для этого они должны реализовывать метод __iter__(), который возвращает итератор, или поддерживать итерацию через протокол итераторов.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
🔎Синглтон - это паттерн проектирования, который обеспечивает наличие только одного экземпляра определенного класса. Интересно то, что этот единственный экземпляр предоставляет глобальную точку доступа к этому объекту в вашем коде.

⬆️ В примере на фото класс Singleton имеет переменную класса _instance, которая хранит единственный экземпляр объекта. При создании экземпляра класса Singleton проверяется, существует ли уже экземпляр. Если нет, то создается новый экземпляр; если уже есть, то возвращается существующий.

➡️Зачем это полезно? Синглтоны пригодны, когда у вас есть ресурсоемкая задача, которая должна быть выполнена только один раз за время работы программы или когда требуется обеспечить глобальный доступ к определенному объекту.

➡️Понимание синглтонов может быть полезным для эффективной организации кода и управления ресурсами в ваших проектах на Python.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍3
➡️Распаковка значений в Python - это способ присвоения значений из итерируемых объектов переменным. Это позволяет извлечь значения из списка, кортежа, строки или других итерируемых объектов и присвоить их отдельным переменным.

➡️Комбинации с примерами и краткими описаниями:

1. Распаковка в несколько переменных:

a, b, c = 1, 2, 3
# a = 1, b = 2, c = 3


➡️Присваивание значений из кортежа переменным.

2. Распаковка посимвольно в строки:

a, b = "12"
# a = '1', b = '2'


➡️Разделение строки на отдельные символы и присваивание их переменным.

3. Распаковка с использованием звёздочки (*):

a, *b = 1, 2, 3
# a = 1, b = [2, 3]


➡️Сбор оставшихся значений в список с использованием звёздочки.

4. Распаковка в переменную со звёздочкой (*):

a, *b, c = 1, 2, 3, 4
# a = 1, b = [2, 3], c = 4


➡️Присваивание первого и последнего значения, а остаток помещается в список.

5. Игнорирование значений при распаковке:

a, _, b = 7, 8, 9
# a = 7, b = 9 (значение 8 игнорируется)


➡️Пропуск значений, которые не нужны при присвоении.

➡️Различные итерируемые объекты:

Можно использовать любые итерируемые объекты, такие как списки, кортежи, строки, объекты, поддерживающие итерацию и даже функция range():

- Список:

a, b, c = [4, 5, 6]
# a = 4, b = 5, c = 6


- Кортеж:

x, y = (10, 20)
# x = 10, y = 20


- Строка:

char1, char2, char3 = "xyz"
# char1 = 'x', char2 = 'y', char3 = 'z'


- Использование range():

a, b, c = range(1, 4)
# a = 1, b = 2, c = 3


Итог:

Распаковка значений в Python - удобный и эффективный способ присваивания значений переменным из итерируемых объектов, делая код более читаемым и компактным. Это дает гибкость при работе с данными различных типов и структур.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍8🔥3
🔎DevOps - это практика, объединяющая разработку и операционное обслуживание программного обеспечения. Термин DevOps происходит от сочетания слов "development" (разработка) и "operations" (операции). Он описывает культуру сотрудничества и инструменты, которые помогают автоматизировать процессы разработки и управления инфраструктурой.

➡️Преимущества DevOps

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

Еще одно преимущество DevOps - это улучшение качества программного обеспечения. Благодаря автоматическому тестированию и непрерывной интеграции, ошибки и проблемы обнаруживаются и исправляются на ранних стадиях разработки. Это помогает предотвратить возникновение серьезных проблем в продукте и повышает его надежность.

Кроме того, DevOps способствует повышению эффективности работы команды. Благодаря упрощению и автоматизации процессов, разработчики и операционные специалисты могут сосредоточиться на решении более сложных задач, вместо рутинных операций. Это позволяет снизить нагрузку на сотрудников и улучшить их работу.

➡️Роль DevOps инженера

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥2
👍4
Что выдаст код
Anonymous Quiz
11%
bangkok
14%
kokbang
23%
angkok
26%
angko
13%
kokgna
14%
Error
👍4
Разбор

.capitalize() - возвращает слово, сделав первую букву заглавной. bangkok —> Bangkok

a[0].upper() —> берем первую букву b и переводим ее в верхний регистр при помощи .upper(). Далее склеиваем со срезом с 1 индекса по конец. (angkok) —> получим Bangkok.

В результате получаем одинаковый результат с обеих сторон от ==

Тогда нужно вывести наше изначальное слово срезом от 1 до -1 (-1 — это последний индекс). Начинаем со второй буквы (индекс 1) и закачиваем предпоследней (правая граница не включается)

Ответ: angko
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥43
➡️Слияние словарей - частое действие в программировании на Python. Существует множество способов сделать это. Но все они были уродливы до версии Python 3.9.

➡️Начиная с Python 3.9, мы наконец-то получили самый элегантный способ объединения словарей - использование операторов объединения.

⬆️В примере на фото, код выведет:

{'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤷‍♀63🔥3
🔎В программировании существует множество алгоритмов сортировки, и одним из самых известных и простых является сортировка пузырьком.

➡️Описание алгоритма сортировки пузырьком

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

➡️Пример кода сортировки пузырьком на языке Python:

def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]

# Пример использования
array = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(array)
print("Отсортированный массив:")
for i in range(len(array)):
print("%d" % array[i])


➡️Преимущества и недостатки сортировки пузырьком

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

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥1
😁21🤣13👍3
Jinja 2 - это шаблонизатор для языка программирования Python. Он предоставляет удобные инструменты для создания динамических веб-страниц и генерации контента на основе шаблонов. Он основан на языке шаблонов Django и предоставляет более гибкую и простую в использовании альтернативу.

➡️Основные возможности Jinja 2

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

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

🔎Кроме того, Jinja 2 поддерживает наследование шаблонов, что делает его очень гибким в использовании. Вы можете создавать базовый шаблон с общей структурой и стилями, а затем наследовать его и создавать дочерние шаблоны, которые наследуют все основные элементы базового шаблона. Это позволяет повторно использовать код и упрощает разработку и обслуживание веб-приложений.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4👍2
➡️Стандартная библиотека Python 3 содержит модуль pathlib, включающий в себя функцию Path(), достаточную для полноценной работы с файловыми путями.

➡️Одной из самых крутых фич в работе с путями является замена os.path.join() на более удобный и элегантный вариант, изображенный на картинке.

По сути эта библиотека заменяет ранее используемые для работы с путями функции из модуля os (например os.mkdir или os.path) на более удобные.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3
🔎Библиотека Keras - это высокоуровневая нейронная сеть, написанная на языке Python. Она предоставляет простой и интуитивно понятный интерфейс для создания и обучения глубоких нейронных сетей. Благодаря своей простоте и гибкости, Keras позволяет разработчикам быстро создавать и испытывать различные модели машинного обучения.

➡️Преимущества Keras

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

➡️Возможности Keras

Keras поддерживает широкий спектр возможностей машинного обучения. Он позволяет создавать и обучать различные типы нейронных сетей, включая полносвязные сети, сверточные нейронные сети и рекуррентные нейронные сети. Кроме того, Keras предоставляет инструменты для работы с изображениями, текстом и временными рядами. Он также поддерживает автоматическое распределение обучения на несколько GPU, что позволяет ускорить процесс обучения на больших данных.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥2