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
Разбор

В этом случае, значение "1 or value" вернет 1, так как оператор "или" (or) вернет первое истинное значение (1). Далее, оператор "and" будет проверять 1 and False, и так как второе значение False, результатом этого выражения будет False, однако это значение не будет использовано, так как первое значение уже было определено как 1. Следовательно, результатом всего выражения будет 1.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥53🤯2👀1