ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

Программистика

Программистика

关闭频道

Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager

显示更多
5 764
订阅者
-424 小时
+57 天
-8730 天
帖子存档
4. Абстракция Абстракция означает выделение ключевых, наиболее значимых характеристик объекта, исключая из рассмотрения незначимые. Абстракция часто реализуется с помощью абстрактных классов и интерфейсов.
# Импорт необходимых модулей для создания абстрактного класса и абстрактных методов
from abc import ABC, abstractmethod

# Определение абстрактного класса Shape
class Shape(ABC):
    # Декоратор @abstractmethod указывает, что метод area должен быть переопределен в подклассах
    @abstractmethod
    def area(self):
        pass  # Тело абстрактного метода оставлено пустым

# Определение класса Rectangle, который наследует абстрактный класс Shape
class Rectangle(Shape):
    # Конструктор класса Rectangle принимает два параметра: ширину и высоту прямоугольника
    def __init__(self, width, height):
        self.width = width  # Инициализация атрибута width
        self.height = height  # Инициализация атрибута height

    # Переопределение абстрактного метода area для вычисления площади прямоугольника
    def area(self):
        return self.width * self.height  # Возвращается произведение ширины на высоту

# Создание экземпляра класса Rectangle с шириной 10 и высотой 20
rect = Rectangle(10, 20)

# Вывод площади прямоугольника, используя переопределенный метод area
print(rect.area())  # Выведет 200
При попытке создать экземпляр абстрактного класса Shape напрямую, Python выдаст ошибку, так как абстрактные классы предназначены для наследования, а не для прямого использования. Класс Rectangle является конкретной реализацией абстрактного класса Shape и обязан предоставить реализацию абстрактного метода area(). Этот механизм обеспечивает выполнение требования о реализации определенного набора методов во всех классах, наследующих абстрактный класс, что упрощает проектирование и повышает предсказуемость кода. @programistica // #article

⚙️ Принципы ООП Объектно-ориентированное программирование (ООП) — это парадигма программирования, основанная на концепции "объектов", которые могут содержать данные в виде полей (часто называемых атрибутами или свойствами) и код в виде процедур (часто называемых методами). ООП моделирует программные приложения, используя объекты и классы, что облегчает разработку и поддержку кода. Основные принципы ООП включают инкапсуляцию, наследование, полиморфизм и абстракцию. 1. Инкапсуляция Инкапсуляция — это механизм упаковки данных (атрибутов) и методов, работающих с этими данными, в единый компонент (класс) и ограничение доступа к некоторым компонентам объекта из внешнего мира.
# Определение класса Account
class Account:
    # Метод инициализации класса
    def __init__(self, owner, balance=0):
        self.owner = owner  # Сохранение владельца счета как публичного атрибута
        self.__balance = balance  # Инициализация баланса как приватного атрибута

    # Метод для добавления средств на счет
    def deposit(self, amount):
        self.__balance += amount  # Увеличение баланса на указанную сумму
        print(f"Added {amount} to the balance")  # Вывод сообщения о депозите

    # Метод для снятия средств со счета
    def withdraw(self, amount):
        if amount > self.__balance:  # Проверка достаточности средств на счете
            print("Not enough funds")  # Вывод сообщения об ошибке при недостаточности средств
            return
        self.__balance -= amount  # Уменьшение баланса на указанную сумму
        print(f"Withdrew {amount} from the balance")  # Вывод сообщения о снятии

    # Метод для получения текущего баланса
    def get_balance(self):
        return self.__balance  # Возвращает текущий баланс

# Создание экземпляра класса Account с именем владельца "John" и начальным балансом по умолчанию (0)
acc = Account("John")

# Вызов метода deposit для добавления 100 единиц на счет
acc.deposit(100)
# Вывод текущего баланса с использованием метода get_balance
print(acc.get_balance())

# Вызов метода withdraw для снятия 50 единиц со счета
acc.withdraw(50)
# Вывод текущего баланса после снятия
print(acc.get_balance())
Этот код демонстрирует базовый пример инкапсуляции в ООП на Python. Приватный атрибут __balance используется для хранения баланса счета, доступ к которому осуществляется только через публичные методы класса (deposit, withdraw, get_balance). Это предотвращает прямой доступ к балансу извне класса и позволяет контролировать изменения баланса, обеспечивая целостность данных.

💻 Вопрос из собеседования: Что такое pickling и unpickling? Модуль pickle принимает любой объект Python, преобразует его в с
💻 Вопрос из собеседования: Что такое pickling и unpickling? Модуль pickle принимает любой объект Python, преобразует его в строковое представление и сохраняет в файл с помощью функции dump, такой процесс называется pickling. Процесс извлечения исходных объектов Python из сохраненного строкового представления называется unpickling.
import pickle

a = 1

#Процесс pickling
pickle.dump(a, open('file.sav', 'wb'))

#Процесс unpickling
file = pickle.load(open('file.sav', 'rb'))
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥
@programistica // #jobs

🖼️ Библиотека Python: Starlette Starlette — это легковесный ASGI (Asynchronous Server Gateway Interface) фреймворк/тулкит для Python, предназначенный для создания асинхронных веб-приложений и API. Он предлагает высокую производительность и гибкость, поддерживая асинхронные запросы и предоставляя мощные инструменты для маршрутизации, запросов, форм и аутентификации, делая его идеальным выбором для современных веб-разработок. ⚙️ Пример использования
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse
from starlette.routing import Route
import uvicorn

async def welcome(request):
    return PlainTextResponse('Добро пожаловать в мир Starlette!')

app = Starlette(debug=True, routes=[
    Route('/', welcome),
])

if __name__ == '__main__':
    uvicorn.run(app, host='127.0.0.1', port=8000)
В этом примере мы создаем базовое веб-приложение с использованием Starlette, которое содержит один маршрут /, обрабатываемый асинхронной функцией welcome. Функция welcome возвращает простой текстовый ответ с приветствием. После запуска приложения с помощью Uvicorn, вы можете перейти по адресу http://127.0.0.1:8000/ в вашем веб-браузере, чтобы увидеть ответ от сервера. ✔️ Установка
pip install starlette uvicorn
⛓ Ссылка на документацию @programistica // #Library

👀 Книга: Основы программирования в PYTHON, Том 2 ⏺ЧТЕНИЕ, ЗАПИСЬ И ДРУГИЕ ДЕЙСТВИЯ В ФАЙЛЕ ⏺ВЗАИМОДЕЙСТВИЕ С PDF ФАЙЛАМИ В P
👀 Книга: Основы программирования в PYTHON, Том 2 ⏺ЧТЕНИЕ, ЗАПИСЬ И ДРУГИЕ ДЕЙСТВИЯ В ФАЙЛЕ ⏺ВЗАИМОДЕЙСТВИЕ С PDF ФАЙЛАМИ В PYTHON ⏺ОБРАБОТКА СТРОК В PYTHON ⏺АЛГОРИТМЫ СОРТИРОВКИ ⏺PANDAS – ИНСТРУМЕНТ АНАЛИЗА ДАННЫХ И многое другое @programistica // #doc

⚙️Алгоритм поиск в глубину Поиск в глубину (Depth-First Search, DFS) — это один из основных алгоритмов обхода или поиска в графах и деревьях. Он используется для исследования всех узлов графа или дерева, начиная с корневого узла и продвигаясь как можно дальше вдоль каждой ветви перед откатом. Принцип работы DFS DFS работает по следующему принципу: ⏺Начинает с корневого узла (или начального узла) и помечает его как посещенный. ⏺Переходит к одному из соседних узлов, который еще не был посещен. ⏺Повторяет шаг 2 до тех пор, пока не достигнет узла, у которого все соседние узлы уже посещены. ⏺Возвращается назад (откатывается) к предыдущему узлу и повторяет процесс для других соседних узлов. ⏺Процесс продолжается до тех пор, пока не будут посещены все узлы. Применение DFS DFS находит широкое применение в различных задачах: ⏺Поиск путей: Используется для нахождения всех возможных путей между двумя узлами в графе. ⏺Обнаружение циклов: Позволяет выявлять циклы в графах. ⏺Поиск компонентов связности: Помогает определить все компоненты связности в графе. ⏺Топологическая сортировка: Используется для упорядочивания узлов в направленном ациклическом графе. ⏺Решение головоломок: Применяется в задачах, таких как лабиринты и головоломки, где нужно исследовать все возможные пути. Пример реализации DFS на Python Рассмотрим пример реализации DFS для поиска в графе, представленном в виде списка смежности:/
def dfs(graph, start, visited=None):
    if visited is None:
        visited = set()
    visited.add(start)
    
    print(start)  # Действие с узлом (например, вывод)
    
    for neighbor in graph[start]:
        if neighbor not in visited:
            dfs(graph, neighbor, visited)
    
    return visited

# Пример графа в виде списка смежности
graph = {
    'A': ['B', 'C'],
    'B': ['A', 'D', 'E'],
    'C': ['A', 'F'],
    'D': ['B'],
    'E': ['B', 'F'],
    'F': ['C', 'E']
}

# Запуск DFS с начального узла 'A'
dfs(graph, 'A')
Плюсы и минусы DFS Плюсы: ⏺Простота реализации: DFS легко реализовать с использованием рекурсии или стека. ⏺Эффективность: Время выполнения DFS составляет O(V + E), где V — количество узлов, а E — количество рёбер. ⏺Малое потребление памяти: Для хранения узлов в стеке требуется O(h) памяти, где h — глубина дерева (или графа). Минусы: ⏺Не гарантирует кратчайший путь: DFS не всегда находит кратчайший путь в графе. ⏺Риск переполнения стека: При глубокой рекурсии может возникнуть переполнение стека, особенно в очень больших графах. ⏺Неэффективность на широких графах: В графах с большой шириной (много соседних узлов) DFS может быть менее эффективен по сравнению с BFS (поиском в ширину). DFS является мощным и гибким инструментом для решения множества задач в графах и деревьях, но важно учитывать его особенности и ограничения при выборе алгоритма для конкретной задачи. @programistica // #article

💻 Вопрос из собеседования: Назовите пример режимов обработки файлов с помощью Python? Существуют следующие режимы: Режим тол
💻 Вопрос из собеседования: Назовите пример режимов обработки файлов с помощью Python? Существуют следующие режимы: Режим только для чтения (‘r’): открыть файл для чтения. Это режим по умолчанию. Режим только для записи (‘w’): открыть файл для записи. Если файл содержит данные, они будут потеряны. Создается новый файл. Режим чтения-записи (‘rw’): открыть файл для чтения, режим записи. Это режим обновления. Режим добавления (‘a’): открыть для записи, добавить в конец файла, если файл существует.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥
@programistica // #jobs

🖼️ Библиотека Python: PyFlame PyCaret — это библиотека машинного обучения с открытым исходным кодом для Python, которая автоматизирует поток работы машинного обучения, позволяя выполнять сложные задачи моделирования всего несколькими строками кода. Она предоставляет простой и эффективный способ для подготовки данных, выбора моделей, настройки гиперпараметров, а также для анализа и визуализации результатов, делая машинное обучение доступным не только для опытных специалистов, но и для новичков в этой области. ⚙️ Пример использования
from pycaret.datasets import get_data
from pycaret.classification import *

# Загружаем датасет
data = get_data('diabetes')

# Инициализируем настройки окружения в PyCaret и загружаем датасет
s = setup(data, target = 'Class variable')

# Сравним различные модели для нахождения лучшей
best_model = compare_models()

# Создаем модель на основе лучшей найденной
model = create_model(best_model)

# Настраиваем модель
tuned_model = tune_model(model)

# Оцениваем модель
evaluate_model(tuned_model)

# Делаем предсказания на новых данных
predictions = predict_model(tuned_model, data=data)

# Выводим предсказания
print(predictions.head())
Этот код демонстрирует базовый поток работы с PyCaret для задачи классификации. Мы начинаем с загрузки данных и инициализации настроек окружения в PyCaret с указанием целевой переменной. Затем мы используем compare_models() для автоматического сравнения различных моделей машинного обучения и выбора лучшей. После этого мы создаем и настраиваем выбранную модель, оцениваем ее и делаем предсказания на новых данных. ✔️ Установка
pip install pycaret
⛓ Ссылка на документацию @programistica // #Library

👀 Книга: Расширенная аналитика с PySpark ⏺Анализ больших данных ⏺Введение в анализ данных с PySpark ⏺Рекомендация музыки и н
👀 Книга: Расширенная аналитика с PySpark ⏺Анализ больших данных ⏺Введение в анализ данных с PySpark ⏺Рекомендация музыки и набор данных AudioScrobbler ⏺Прогнозирование с помощью деревьев и лесов решений ⏺Обнаружение аномалий при помощи кластеризации И многое другое @programistica // #doc

💻 Вопрос из собеседования: Когда выполняется except, в блоке try-except? В Python исключения обрабатываются с помощью блоков
💻 Вопрос из собеседования: Когда выполняется except, в блоке try-except? В Python исключения обрабатываются с помощью блоков try/except. Для этого операция, которая может вызвать исключение, помещается внутрь блока try. А код, который должен быть выполнен при возникновении ошибки, находится внутри except. Например, вот как можно обработать ошибку деления на ноль:
try:
    a = 7 / 0
except:
    print('Ошибка! Деление на 0')
Здесь в блоке try находится код a = 7 / 0 — при попытке его выполнить возникнет исключение и выполнится код в блоке except (то есть будет выведено сообщение "Ошибка! Деление на 0"). После этого программа продолжит свое выполнение.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥
@programistica // #jobs

🖼️ Библиотека Python: Boltons Boltons — это мощный набор инструментов и утилит для Python, предназначенный для дополнения стандартной библиотеки без внешних зависимостей. Он предлагает широкий спектр готовых к использованию решений, включая усовершенствованные структуры данных, утилиты для работы со строками, числами, датами и файлами, улучшая тем самым производительность и эффективность разработки. ⚙️ Пример использования
from boltons.cacheutils import cachedproperty

class Circle:
    def __init__(self, radius):
        self.radius = radius

    @cachedproperty
    def area(self):
        print("Вычисление площади круга")
        return 3.141592653589793 * self.radius * self.radius

# Создаем экземпляр круга с радиусом 5
circle = Circle(5)

# При первом обращении к свойству area, будет выполнено его вычисление
print(circle.area)  # Вычисление площади круга и вывод результата

# При последующих обращениях к свойству area, вычисление выполняться не будет, значение будет взято из кэша
print(circle.area)  # Вывод результата без повторного вычисления
В этом примере, когда мы в первый раз обращаемся к свойству area объекта circle, выполняется вычисление площади круга, и результат кэшируется. При последующих обращениях к этому свойству, вычисление повторно не производится, а используется ранее кэшированное значение, что демонстрирует эффективность использования CachedProperty для оптимизации производительности ваших Python приложений. ✔️ Установка
pip install boltons
⛓ Ссылка на документацию @programistica // #Library

👀 Книга: Базовые алгоритмы машинного обучения на языке Python ⏺Машинное обучение: общие сведения и понятия ⏺Исследовательски
👀 Книга: Базовые алгоритмы машинного обучения на языке Python ⏺Машинное обучение: общие сведения и понятия ⏺Исследовательский анализ данных ⏺Линейная регрессия ⏺Логистическая регрессия ⏺Уменьшение размерности ⏺Кластеризация @programistica // #doc

У топовых айтишников есть секрет, они работают не 8 часов, а головой! Понимают, что без английского в айти делать нечего. Поэ
У топовых айтишников есть секрет, они работают не 8 часов, а головой! Понимают, что без английского в айти делать нечего. Поэтому в начале карьеры изучают технический английский, а потом смело прибавляют +40% к рыночной зарплате. Знают где в телеграме брать современные идеи и материалы для работы. Например, для web-разработчиков – это Сайтодел. Становись Senior-разработчиком. Всё просто, два клика: → Английский для программистов → Сайтодел 🎁 Бесплатно: Поиск разработчика для сайта и первый созвон по обучению английскому. Не упускай такую возможность!

💻 Вопрос из собеседования: Что такое оператор членства? Операторы членства в Python проверяют принадлежность объекта к после
💻 Вопрос из собеседования: Что такое оператор членства? Операторы членства в Python проверяют принадлежность объекта к последовательности, такой как строки, списки или кортежи. Python предлагает два оператора членства для проверки принадлежности значения. Они следующие: “in” и “not in”. Пример 1: В этом коде мы инициализировали список, строку, набор, словарь и кортеж. Затем мы используем оператор членства in, чтобы проверить, встречается ли элемент в соответствующих последовательностях или нет.
list1 = [1, 2, 3, 4, 5]
str1 = "Hello World"
set1 = {1, 2, 3, 4, 5}
dict1 = {1: "Geeks", 2:"for", 3:"geeks"}
tup1 = (1, 2, 3, 4, 5)

print(2 in list1)

print('O' in str1)

print(6 in set1)

print(3 in dict1)

print(9 in tup1)

#Вывод:
#True
#False
#False
#True
#False
Пример 2: Давайте посмотрим другой пример, но на этот раз без использования оператора ‘in’:
def overlapping(list1, list2):

    c = 0
    d = 0
    for i in list1:
        c += 1
    for i in list2:
        d += 1
    for i in range(0, c):
        for j in range(0, d):
            if(list1[i] == list2[j]):
                return 1
    return 0


list1 = [1, 2, 3, 4, 5]
list2 = [6, 2, 8, 9]
if(overlapping(list1, list2)):
    print("overlapping")
else:
    print("not overlapping")

#Вывод:
#overlapping
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥
@programistica // #jobs

⚙️ Модель ARIMA в программировании Модель ARIMA (Autoregressive Integrated Moving Average) является одним из наиболее широко используемых подходов для прогнозирования временных рядов в статистике и машинном обучении. Эта модель объединяет три основных компонента: авторегрессионный (AR), интегрированный (I) и скользящего среднего (MA), что делает ее мощным инструментом для анализа временных рядов, особенно когда данные имеют тренды или сезонность. Основные компоненты модели ARIMA ⏺Авторегрессионный (AR) компонент описывает взаимосвязь между текущим значением временного ряда и его предыдущими значениями. ⏺Интегрированный (I) компонент относится к разностям временного ряда, необходимым для достижения стационарности данных. ⏺Компонент скользящего среднего (MA) моделирует взаимосвязь между текущим значением временного ряда и прошлыми ошибками прогноза. Пример использования модели ARIMA в Python Для работы с ARIMA в Python часто используется библиотека statsmodels. Ниже приведен пример анализа и прогнозирования временного ряда с использованием ARIMA. ✔️Установка библиотеки statsmodels
pip install statsmodels
✔️Подготовка данных Для примера возьмем искусственно сгенерированный временной ряд:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA

# Генерация искусственного временного ряда
np.random.seed(42)
data = np.random.normal(0, 1, 100).cumsum()

# Преобразование в pandas Series для удобства
time_series = pd.Series(data)
✔️Построение модели ARIMA Выбор параметров модели ARIMA (p, d, q) может быть основан на анализе автокорреляции и частичной автокорреляции временного ряда. Для простоты примера возьмем произвольные параметры:
# Создание и обучение модели ARIMA
model = ARIMA(time_series, order=(2, 1, 2))
model_fit = model.fit()

# Вывод сводки модели
print(model_fit.summary())
✔️Прогнозирование с помощью модели ARIMA После обучения модели можно сделать прогноз на будущее:
# Прогнозирование
forecast = model_fit.forecast(steps=10)
print(forecast)

# Визуализация исходных данных и прогноза
plt.figure(figsize=(10, 6))
plt.plot(time_series, label='Исходные данные')
plt.plot(pd.Series(forecast, index=np.arange(len(time_series), len(time_series) + 10)), label='Прогноз', color='red')
plt.legend()
plt.show()
Заключение Модель ARIMA представляет собой мощный инструмент для анализа и прогнозирования временных рядов. Она позволяет учитывать различные статистические свойства данных, включая тренды и сезонность. Благодаря библиотеке statsmodels, работа с ARIMA в Python становится относительно простой и доступной задачей для аналитиков и разработчиков. @programistica // #article

❤️ Все платные курсы и книги выложили в Telegram Найденные материалы по всем языкам программирования теперь доступны бесплатн
❤️ Все платные курсы и книги выложили в Telegram Найденные материалы по всем языкам программирования теперь доступны бесплатно: — Видео-курсы 2872 шт. — Обучающие книги 1913 шт. 🔒 Ежедневно куча материалов сливается в канал Easy Dev

🖼️ Библиотека Python: Pydantic Pydantic — это современная библиотека для валидации данных и управления настройками в Python, использующая Python type hints для проверки типов данных. Она позволяет легко создавать сложные модели данных с автоматической валидацией и конвертацией типов, обеспечивая быструю и эффективную разработку приложений с чётко определёнными структурами данных. ⚙️ Пример использования
from pydantic import BaseModel, ValidationError, constr, conint

# Определяем модель данных с Pydantic
class User(BaseModel):
    id: int
    name: constr(min_length=2, max_length=50)
    age: conint(ge=18, le=100)
    email: str

# Пример корректных данных
valid_user_data = {
    "id": 1,
    "name": "John Doe",
    "age": 30,
    "email": "john.doe@example.com"
}

# Пример некорректных данных
invalid_user_data = {
    "id": "abc",  # Некорректный тип
    "name": "J",  # Слишком короткое имя
    "age": 150,   # Возраст вне допустимого диапазона
    "email": "not-an-email"  # Некорректный формат email
}

# Проверка корректных данных
try:
    user = User(**valid_user_data)
    print("Корректные данные:", user)
except ValidationError as e:
    print("Ошибки валидации (корректные данные):", e.json())

# Проверка некорректных данных
try:
    user = User(**invalid_user_data)
    print("Некорректные данные:", user)
except ValidationError as e:
    print("Ошибки валидации (некорректные данные):", e.json())
В этом примере мы определили модель данных User, которая включает в себя поля id, name, age и email. Мы использовали ограничения типов, такие как минимальная и максимальная длина строки для имени, и диапазон допустимых значений для возраста. Затем мы создали два набора данных: один корректный (valid_user_data) и один некорректный (invalid_user_data). Мы проверили оба набора данных, создавая экземпляры модели User. В случае корректных данных объект модели будет создан успешно, а в случае некорректных данных будет выброшено исключение ValidationError, которое мы обрабатываем и выводим. ✔️ Установка
pip install pydantic
⛓ Ссылка на документацию @programistica // #Library

Что выведет код?
Anonymous voting