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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
🤣34👍83😁1
➡️Бинарное дерево - это иерархическая структура данных, в которой каждый узел имеет не более двух потомков: левый и правый. В этом блоге мы рассмотрим, как создать бинарное дерево в Python.

В бинарном дереве узел является основным элементом. Каждый узел имеет данные и ссылки на левого и правого потомков. В Python мы можем создать узел, определив класс Node с инициализатором, который устанавливает данные и оба потомка.

💡Пример кода:

class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data


➡️Создание бинарного дерева

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

💡Пример кода:

root = Node(1)

root.left = Node(2)
root.right = Node(3)

root.left.left = Node(4)
root.left.right = Node(5)


➡️Обход бинарного дерева

Обход - это процесс посещения каждого узла в дереве. Существуют различные методы обхода, включая прямой (Preorder), симметричный (Inorder) и обратный (Postorder) обход. В Python мы можем реализовать эти методы с помощью рекурсии или стеков.

Пример кода для прямого обхода:

def preorder_traversal(root):
if root:
print(root.data)
preorder_traversal(root.left)
preorder_traversal(root.right)


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135🔥1
➡️Целые числа (int)

Целые числа в Python занимают разное количество байт в зависимости от их значения. В Python 3 все целые числа являются объектами класса int. Этот класс использует переменную длину, что означает, что количество байт, необходимых для хранения целого числа, зависит от его значения и может быть любым.

➡️Вещественные числа (float)

Вещественные числа в Python занимают 8 байт. Это соответствует 64 битам двоичного числа с плавающей точкой стандарта IEEE 754.

➡️Строки (str)

Строки в Python занимают количество байт, равное количеству символов в строке, умноженному на размер каждого символа. В Python 3 по умолчанию используется кодировка Unicode, которая занимает 2 байта на символ, если символ может быть представлен в 16-битной форме, и 4 байта в противном случае.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥1
🤣19👍7😁43👀2🔥1
➡️Введение

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

➡️Что такое CI?

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

➡️Что такое CD?

CD - это сокращение от "Continuous Delivery" или "Continuous Deployment", что в переводе означает "непрерывная доставка" или "непрерывное развертывание". Это процесс автоматической доставки программного обеспечения в производственную среду после успешного прохождения всех тестов в процессе CI. Он позволяет быстро и надежно доставлять программное обеспечение в производственную среду, что сокращает время между разработкой и выпуском.

➡️Как работают CI и CD?

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥1
➡️Django - это популярный фреймворк для веб-разработки, написанный на языке Python. Он облегчает процесс создания веб-приложений, предоставляя разработчикам множество инструментов и функций. Но как и у любого другого инструмента, у Django есть свои плюсы и минусы.

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

1. Быстрая разработка - Django предоставляет множество готовых компонентов, что позволяет быстро создавать веб-приложения. Например, Django имеет встроенную систему аутентификации, которую можно использовать для регистрации и авторизации пользователей без необходимости разработки этой функциональности с нуля.
2. Безопасность - Django предоставляет множество инструментов для обеспечения безопасности веб-приложений. Это включает в себя защиту от CSRF-атак, SQL-инъекций и других видов атак на веб-приложения.
3. Масштабируемость - Django позволяет легко масштабировать веб-приложения. Это может быть особенно полезно для больших проектов, которые нуждаются в масштабировании для обработки большого количества пользователей.

➡️Недостатки Django

1. Сложность - хотя Django предоставляет множество готовых компонентов, изучение фреймворка может быть сложным, особенно для новичков в веб-разработке. Django имеет свой собственный способ работы с запросами и базами данных, который может отличаться от других фреймворков.
2. Ограничения при создании пользовательского интерфейса - Django не является лучшим инструментом для создания сложных пользовательских интерфейсов. Он предоставляет базовые инструменты для создания интерфейса, но, если вам нужно что-то более сложное, вам может прийтись использовать другие инструменты.
3. Сложность в обработке асинхронных запросов - Django не обрабатывает асинхронные запросы так же легко, как другие фреймворки. Если вы работаете с приложением, которое требует обработки большого количества асинхронных запросов, вам может прийтись использовать другие инструменты.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6🔥1
➡️Декларативное программирование

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

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

➡️Императивное программирование

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

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

Разница между декларативным и императивным программированием

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

Другое отличие заключается в том, что декларативное программирование более абстрактно, поскольку оно описывает желаемый результат, а не конкретный способ его достижения. Императивное программирование более конкретно, поскольку оно описывает последовательность шагов, которые должны быть выполнены.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔64👍2🔥1🥰1
➡️Декларативное программирование в Python

Декларативное программирование - это стиль программирования, который сосредотачивается на "что", а не на "как" программы. Он включает в себя указание желаемого вывода программы без указания того, как его достичь. В Python одним из примеров декларативного программирования является использование генераторов списков.

numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]


В этом примере мы объявляем, что мы хотим создать список квадратов от 1 до 5. Мы не указываем, как достичь этого вывода. Генераторы списков в Python заботятся об этом за нас.

➡️Императивное программирование в Python

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

numbers = [1, 2, 3, 4, 5]
squares = []
for num in numbers:
squares.append(num ** 2)


В этом примере мы указываем, как достичь желаемого вывода, создав список квадратов от 1 до 5. Мы используем цикл for для итерации по каждому числу и добавляем его квадрат в новый список.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
🤣18👍7😁4😢32
👍6
Что выдаст код выше
Anonymous Quiz
18%
2
2%
a
30%
b
12%
self
37%
Error
🤔11😢3🤨3👍1
Разбор

У нас есть два класса, причем один наследуется от другого. Здесь идет простое создание объекта, а потом вызов метода у класса-ребенка. В методе классе-ребенка вызывается метод класса-родителя, а там выводится 'b'.
Переданные параметры никак не влияют на ответ, важно только их количество.
Важно помнить, что self принимает в себя сам объект. Если вызов идет через объект, то self передается автоматически.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯117🔥3🤓2👍1👀1
➡️Метод .isnumeric()

Метод .isnumeric() в Python используется для проверки, содержит ли строка только числа. Если все символы в строке являются числами, этот метод возвращает значение True. В противном случае возвращается False. Этот метод очень полезен при валидации ввода данных, когда вы хотите убедиться, что пользователь ввел только числа.

str1 = '12345'
print(str1.isnumeric()) # Вывод: True

str2 = '12345abc'
print(str2.isnumeric()) # Вывод: False


➡️Метод .isalpha()

Метод .isalpha() в Python, с другой стороны, используется для проверки, содержит ли строка только буквы. Если все символы в строке являются буквами, этот метод возвращает значение True. В противном случае возвращается False. Этот метод также полезен при валидации ввода данных, когда вы хотите убедиться, что пользователь ввел только буквы.

str3 = 'abc'
print(str3.isalpha()) # Вывод: True

str4 = 'abc123'
print(str4.isalpha()) # Вывод: False



🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135🤝2🔥1👏1
💻Copilot - это инструмент искусственного интеллекта, разработанный GitHub и OpenAI. Он использует глубокое обучение и нейронные сети для создания кода на основе контекста.

➡️Когда вы начинаете вводить код в свой редактор, Copilot предлагает вам варианты завершения кода на основе контекста. Он может предложить вам функции, классы, методы и другие элементы кода, которые могут соответствовать вашим потребностям. Инструмент также может помочь вам проверить синтаксическую правильность кода и даже создать целый класс или функцию.

Сам Copilot

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3👍2👏1
✈️Python поддерживает множество кодировок, которые могут использоваться для представления текста. Некоторые из наиболее распространенных кодировок, поддерживаемых Python, включают UTF-8, ASCII и Latin-1. UTF-8 является наиболее распространенной кодировкой и используется в большинстве веб-приложений.

➡️Как работает encoding в Python

Python использует объекты типа str для хранения строковых значений. Когда вы создаете строку в Python, она сохраняется в памяти в виде последовательности символов Unicode. Однако, когда необходимо сохранить строку в файл или передать ее по сети, она должна быть преобразована в байты, и для этого используется определенная кодировка. Это происходит с помощью метода encode.

Пример:

text = 'Пример текста'
encoded_text = text.encode('utf-8')

В этом примере мы создаем строку text, содержащую русские символы, и затем преобразуем ее в байты, используя кодировку UTF-8. Результатом будет объект типа bytes, содержащий закодированные данные.

Обратное преобразование из байтов в строку осуществляется с помощью метода decode:

decoded_text = encoded_text.decode('utf-8')



🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥2👻2
🤣32👍3😁3👌2
✈️Pydantic - это библиотека Python, которая предоставляет инструменты для проверки данных и сериализации (преобразования объектов Python в JSON-подобную структуру данных). Pydantic также предоставляет возможность создавать собственные классы с валидацией и автоматической сериализацией данных.

➡️Валидация данных с Pydantic

Одной из основных функций Pydantic является проверка данных. Pydantic позволяет определить структуру данных в Python-классе и автоматически проверять, соответствует ли входной объект этой структуре. Например, мы можем создать класс "Person" со свойствами "name" и "age", а затем использовать этот класс для проверки данных о человеке, которые мы получаем из внешнего источника.

python
from pydantic import BaseModel

class Person(BaseModel):
name: str
age: int

person_data = {"name": "Alice", "age": 25}
person = Person(**person_data)


В этом примере мы создали экземпляр класса "Person" из словаря "person_data". Pydantic автоматически проверяет, что ключи "name" и "age" существуют в словаре и что "name" имеет тип "str", а "age" - тип "int".

В следующем посте продолжим рассматривать Pydantic, а точнее сериаллизацию данных и создание своих классов.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥43👀1
➡️Сериализация данных с Pydantic

Еще одна полезная функция Pydantic - это сериализация данных. При сериализации объект Python преобразуется в JSON-подобную структуру данных, которая может быть передана по сети или сохранена в файл. Pydantic позволяет автоматически сериализовать объекты Python, определенные в классах Pydantic.

python
class Person(BaseModel):
name: str
age: int

person = Person(name="Alice", age=25)
person_json = person.json()


В этом примере мы создали экземпляр класса "Person", а затем сериализовали его в формат JSON с помощью метода "json()". Результатом будет строка JSON с полями "name" и "age", соответствующими свойствам объекта "person".

➡️Создание своих классов Pydantic

Pydantic также позволяет создавать собственные классы с валидацией и автоматической сериализацией данных. Для создания такого класса необходимо унаследоваться от базового класса Pydantic "BaseModel" и определить свойства класса с аннотациями типов данных.

python
class User(BaseModel):
username: str
password: str
email: str
age: Optional[int] = None


В этом примере мы создали класс "User" со свойствами "username", "password", "email" и "age". Свойство "age" определено как необязательное с помощью "Optional[int]". Если значение "age" не указано при создании экземпляра класса, то оно будет равно "None".

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥21👀1
👍8
Что выдаст код выше
Anonymous Quiz
28%
Error
6%
1 1
40%
1
6%
value
20%
False
👍53👏1🤓1