Программистика
关闭频道
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
显示更多5 598
订阅者
-224 小时
+87 天
-8530 天
帖子存档
5 596
👀 Книга: Программирование на Python для абсолютных новичков
⏺Знакомство с Python
⏺Основы
⏺Работа с данными
⏺Управление потоком
⏺Работа с файлами
⏺Что такое функции
⏺Импорт модулей
И многое другое
@programistica // #doc
5 596
5 596
🖼️ Библиотека Python: FastAPI
FastAPI — это современный, быстрый веб-фреймворк для создания API с Python 3.6+ на основе стандартных типов Python, который позволяет легко создавать высокопроизводительные веб-приложения. Он автоматически генерирует интерактивную документацию API и поддерживает асинхронные запросы, что делает его идеальным выбором для построения сложных веб-сервисов и приложений.
⚙️ Пример использования
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Привет, мир FastAPI!"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
В этом примере мы создаем экземпляр FastAPI и определяем два маршрута:
⏺read_root() обрабатывает GET-запросы к корневому пути ("/") и возвращает JSON с приветственным сообщением.
⏺read_item() обрабатывает GET-запросы к пути /items/{item_id}, принимая параметр item_id и опциональный запрос q. Этот маршрут возвращает JSON с item_id и q.
✔️ Установка
pip install fastapi uvicorn
⛓ Ссылка на документацию
@programistica // #Library5 596
⚙️ Наследование в Python: Основы и Примеры
Наследование является одним из фундаментальных принципов объектно-ориентированного программирования (ООП). В Python наследование позволяет одному классу (дочернему классу) наследовать атрибуты и методы другого класса (родительского класса), обеспечивая тем самым повторное использование кода и упрощение его структуры.
Основы наследования
В Python класс может наследовать функциональность другого класса, причем не только одного, но и нескольких классов, что называется множественным наследованием. Родительский класс также известен как базовый класс или суперкласс, а класс, который наследует его свойства, называется производным классом или подклассом.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError("Subclass must implement abstract method")
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"
В приведенном выше примере класс Animal является базовым классом с методом speak, который предназначен для переопределения в подклассах. Классы Dog и Cat наследуют класс Animal и реализуют свою версию метода speak.
Переопределение методов
Подклассы могут переопределить методы базового класса. Это означает, что дочерний класс может иметь метод с таким же именем, как и в родительском классе, но с другой или дополненной функциональностью.
Функция super()
Функция super() в Python используется для вызова методов родительского класса из дочернего класса. Это особенно полезно в конструкторе __init__, когда необходимо инициализировать атрибуты базового класса.
class Bird(Animal):
def __init__(self, name, can_fly):
super().__init__(name)
self.can_fly = can_fly
Множественное наследование
Python поддерживает множественное наследование, позволяя классу наследовать функциональность более чем одного класса.
class A:
def method(self):
print("A method")
class B:
def method(self):
print("B method")
class C(A, B):
pass
obj = C()
obj.method()
В случае множественного наследования Python следует порядку разрешения методов (MRO - Method Resolution Order), чтобы определить, какой метод вызывать. В приведенном примере будет вызван метод из класса A, так как он указан первым в списке наследования класса C.
Заключение
Наследование в Python предоставляет мощный инструмент для создания структурированного и легко поддерживаемого кода. Оно позволяет разработчикам расширять и модифицировать существующий код без его дублирования, что ведет к более чистой и эффективной реализации программ.
@programistica // #article5 596
5 596
💻 Вопрос из собеседования: Как перевернуть генератор?
Можно перевернуть генератор в Python, используя функцию
reversed(). Вот пример, который демонстрирует это:
my_list = [1, 2, 3, 4, 5]
my_generator = (x**2 for x in my_list)
for item in reversed(list(my_generator)):
print(item)
В этом примере мы используем функцию reversed() вместе с функцией list(), чтобы создать обратный список элементов, сгенерированных генератором. Затем мы используем этот список с циклом for для перебора элементов в обратном порядке. Если вы работаете с большими наборами данных, может быть полезно использовать обратное итерирование без использования list(), чтобы избежать создания полной копии.
Вот пример, который демонстрирует это:
my_list = [1, 2, 3, 4, 5]
my_generator = (x**2 for x in my_list)
for item in reversed(tuple(my_generator)):
print(item)
Здесь мы используем функцию reversed() вместе с функцией tuple() для обратного итерирования через генератор без создания полной копии.|
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
👀 Книга: введение в основные библиотеки и фреймворки Python
⏺DATA Science
⏺Machine Learning
⏺MLOPS
⏺Explanable AI
⏺TEXT Processing
⏺Image Processing
И многое другое
@programistica // #doc
5 596
🖼️ Библиотека Python: Typer
Typer - это современная библиотека для создания командных интерфейсов (CLI) в Python, которая использует аннотации типов для автоматической генерации справочных сообщений и проверки аргументов. Основываясь на стандартах Python 3.6+ и тесно интегрированная с FastAPI, Typer облегчает разработку мощных и интуитивно понятных CLI-приложений, значительно сокращая необходимость в ручном кодировании и проверке.
⚙️ Пример использования
# импортируем библиотеку Typer
import typer
# создаем объект Typer, который будет использоваться для создания CLI
app = typer.Typer()
# определяем функцию, которая будет выполняться при вызове CLI-команды
@app.command()
def hello(name: str):
"""Принимает имя и выводит приветственное сообщение."""
typer.echo(f"Привет, {name}!")
# точка входа в приложение
if __name__ == "__main__":
app()
Сохраните этот код в файл, например, hello.py, и запустите из командной строки, передав имя в качестве аргумента:
python hello.py --name Алексей
Вы должны увидеть следующий вывод:
Привет, Алексей!
✔️ Установка
pip install typer
⛓ Ссылка на документацию
@programistica // #Library5 596
💻 Вопрос из собеседования: Что такое Cython? Что такое IronPython? Что такое PyPy? Почему они до сих пор существуют и зачем?
Cython - это язык программирования, нацеленный на увеличение производительности Python-кода. Cython позволяет использовать возможности языка Python и C/C++ для эффективного написания расширений модулей на языке Python. Он позволяет вам писать код на Python, который доступен из C/C++, и наоборот. Cython обеспечивает скорость выполнения, сравнимую со скоростью выполнения на языке C/C++, при этом сохраняя простоту и удобство использования языка Python. Cython compiler
компилирует исходный код в C/C++ и затем переводит его в машинный код, что дает быстрый доступ к низкоуровневым ресурсам операционной системы, таким как память и ввод-вывод. Cython также предоставляет возможность использовать дополнительные функции, такие как статическая типизация и параллельное программирование, для дополнительного увеличения производительности.
IronPython - это реализация языка программирования Python, которая работает в контексте платформы .NET. IronPython предоставляет возможность использовать Python в качестве языка .NET. Он может использоваться для написания .NET-приложений, а также для расширения приложений, написанных на других языках .NET. IronPython является открытым и свободно распространяемым программным обеспечением.
PyPy — это высокопроизводительная реализация языка программирования Python. Он был создан с целью предоставления более быстрой и эффективной альтернативы стандартному интерпретатору CPython. PyPy включает компилятор Just-In-Time (JIT), который может оптимизировать выполнение кода Python во время выполнения, что может привести к значительному повышению производительности по сравнению с CPython, особенно для определенных типов рабочих нагрузок. PyPy также поддерживает многие из тех же функций и модулей, что и CPython, включая объектно-ориентированное программирование, динамическую типизацию и стандартную библиотеку Python.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
⚙️Работа с двумерными массивами в Python
Сегодня решил затронуть довольно банальную, но полезную вещь, как работа с двумерными массивами.
🌀Двумерные массивы — это структуры данных, которые позволяют хранить информацию в виде таблицы, состоящей из строк и столбцов. В Python двумерные массивы часто реализуются с помощью списков списков или с использованием специализированных библиотек, таких как NumPy, которая предлагает более эффективные и удобные средства для работы с массивами.
Создание двумерного массива
Для создания двумерного массива в Python можно использовать список списков. Вот пример создания двумерного массива, представляющего собой матрицу 3x3:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
Этот код создает матрицу, где каждый внутренний список представляет собой строку матрицы.
Доступ к элементам
Для доступа к элементам двумерного массива можно использовать индексацию. Сначала указывается индекс строки, а затем индекс столбца:
# Получение элемента на позиции (2, 3)
element = matrix[1][2]
print(element) # Выведет: 6
Изменение элементов
Изменить элемент можно, указав его позицию и присвоив новое значение:
# Изменение элемента на позиции (2, 3)
matrix[1][2] = 10
print(matrix[1][2]) # Выведет: 10
Перебор элементов
Для перебора всех элементов двумерного массива можно использовать вложенные циклы:
for row in matrix:
for element in row:
print(element, end=' ')
print()
Этот код последовательно выведет все элементы матрицы, сохраняя структуру строк и столбцов.
Использование NumPy для работы с двумерными массивами
Библиотека NumPy предлагает тип данных ndarray для эффективной работы с многомерными массивами. Чтобы использовать NumPy, необходимо сначала установить библиотеку, а затем импортировать ее в свой код:
import numpy as np
# Создание двумерного массива с помощью NumPy
np_matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# Доступ к элементу
print(np_matrix[1, 2]) # Выведет: 6
# Изменение элемента
np_matrix[1, 2] = 10
print(np_matrix[1, 2]) # Выведет: 10
NumPy предоставляет множество функций для математических операций над массивами, линейной алгебры, статистики и многое другое, что делает его мощным инструментом для научных вычислений.
Заключение
Двумерные массивы в Python — это удобный способ работы с табличными данными. Использование встроенных списков подходит для простых задач, но при работе с большими объемами данных или выполнении сложных математических операций рекомендуется использовать библиотеку NumPy, которая оптимизирована для этих целей.
@programistica // #article5 596
👀 Книга: Python для анализа данных
⏺Введение в алгоритмизацию и программирование
⏺Среда разработки Google Colaboratory
⏺Синтаксис Python и основные конструкции программы
⏺Условия и циклы
⏺Коллекции
⏺Вложенные коллекции
И многое другое
@programistica // #doc
5 596
🖼️ Библиотека Python: Numba
Numba — это библиотека, которая позволяет ускорить Python-код, путем преобразования его в машинный код. Генерация машинного кода происходит с помощью проекта компилятора LLVM.
Кроме того, Numba поддерживает автоматическое распараллеливание циклов, генерацию кода с GPU-ускорением, создание ufuncs и обратных вызовов на C.
⚙️ Пример использования
import numba
import numpy as np
# Обычная функция Python, которую мы хотим ускорить
def add(a, b):
return a + b
# Декоратор @jit (Just-In-Time компиляция) из Numba
@numba.jit
def add_numba(a, b):
return a + b
# Создаем массивы данных
a = np.random.rand(1000000)
b = np.random.rand(1000000)
# Замеряем время выполнения обычной функции
%timeit add(a, b)
# Замеряем время выполнения функции с Numba
%timeit add_numba(a, b)
Numba также предоставляет другие возможности оптимизации, такие как векторизация и параллельное выполнение кода, что делает ее мощным инструментом для ускорения кода Python.
✔️ Установка
pip install numba
⛓ Ссылка на документацию
@programistica // #Library5 596
⚙️ Шпаргалка по спискам (list) в Python
Списки - это упорядоченные коллекции, которые можно изменять. Они способны содержать произвольное количество объектов, включая другие коллекции.
🟢 Создание списков
🟢 Конвертация итерируемых объектов в списки
🟢 Списковые включения (list comprehensions)
🟢 Методы списков
🔗 Ссылка
@programistica // #doc
5 596
💻 Вопрос из собеседования: В чем разница между pass, continue и break?
Использование ключевого слова "pass" в Python означает отсутствие выполнения каких-либо операций.
Это приходится использовать, например, при создании пустых классов, функций или блоков условий, поскольку Python требует наличия кода внутри таких конструкций.
# Пример использования "pass" при отсутствии кода внутри условия
a = [1, 2, 3, 4, 5]
print("Использование 'pass':")
for i in a:
if i > 3:
pass
print(i)
# => 1
# => 2
# => 3
# => 4
# => 5
# Оператор "continue" пропускает выполнение текущей итерации цикла
print("\nИспользование 'continue':")
for i in a:
if i < 3:
continue
print(i)
# => 3
# => 4
# => 5
# Ключевое слово "break" прерывает выполнение цикла
print("\nИспользование 'break':")
for i in a:
if i == 3:
break
print(i)
# => 1
# => 2
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
💻 Вопрос из собеседования: В чем разница между pass, continue и break?
Использование ключевого слова "pass" в Python означает отсутствие выполнения каких-либо операций.
Это приходится использовать, например, при создании пустых классов, функций или блоков условий, поскольку Python требует наличия кода внутри таких конструкций.
# Пример использования "pass" при отсутствии кода внутри условия
# Оператор "continue" пропускает выполнение текущей итерации циклаa = [1, 2, 3, 4, 5] print("Использование 'pass':") for i in a: if i > 3: pass print(i) # => 1 # => 2 # => 3 # => 4 # => 5# Ключевое слово "break" прерывает выполнение циклаprint("\nИспользование 'continue':") for i in a: if i < 3: continue print(i) # => 3 # => 4 # => 5print("\nИспользование 'break':") for i in a: if i == 3: break print(i) # => 1 # => 2
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥@programistica // #jobs
5 596
🐍 Библиотека Python: Telethon
Telethon - это асинхронная библиотека Python, которая упрощает взаимодействие с API ботов Telegram. Она предоставляет удобный интерфейс и справляется со всеми сложностями, связанными с выполнением вызовов API и обработкой обновлений от Telegram. С помощью Telethon вы можете отправлять сообщения, обрабатывать входящие сообщения, управлять каналами и выполнять множество других задач с легкостью.
⚙️ Пример использования
from telethon import TelegramClient, events
# Замените 'YOUR_API_ID', 'YOUR_API_HASH' и 'YOUR_BOT_TOKEN' на ваши реальные значения
api_id = 'YOUR_API_ID'
api_hash = 'YOUR_API_HASH'
bot_token = 'YOUR_BOT_TOKEN'
# Создание клиента Telegram с использованием данных API и токена бота
client = TelegramClient('bot_session', api_id, api_hash).start(bot_token=bot_token)
# Асинхронная функция для отправки приветственного сообщения
async def send_hello_message():
# Замените 'USER_OR_GROUP_ID' на ID пользователя или группы, в которую нужно отправить сообщение
chat_id = 'USER_OR_GROUP_ID'
# Сообщение, которое будет отправлено
message = 'Hello from your bot!'
# Отправка сообщения указанному пользователю или в группу
await client.send_message(chat_id, message)
# Вызов функции для отправки сообщения
client.loop.run_until_complete(send_hello_message())
Этот скрипт создаст сессию Telegram и отправит приветственное сообщение указанному пользователю или в группу. Не забудьте заменить YOUR_API_ID, YOUR_API_HASH, YOUR_BOT_TOKEN и USER_OR_GROUP_ID на соответствующие реальные значения.
✔️ Установка
pip install Telethon
⛓ Ссылка на документацию
@programistica // #Library
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
