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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️Flask-RESTful — это расширение для фреймворка Flask, которое упрощает создание RESTful API. Flask-RESTful предоставляет мощные инструменты для создания, управления и документирования API, что делает его идеальным инструментом для разработчиков, которые хотят быстро и легко создавать веб-сервисы.

➡️Основные возможности Flask-RESTful:
- Поддержка ресурсов и методов: Flask-RESTful поддерживает создание ресурсов и методов, что позволяет легко определить структуру вашего API.

- Автоматическая документация: Flask-RESTful интегрируется с Swagger, что позволяет автоматически генерировать документацию для вашего API.

- Поддержка аутентификации и авторизации:
Flask-RESTful поддерживает аутентификацию и авторизацию, что позволяет обеспечить безопасность вашего API.

➡️Примеры использования:
1. Создание простого API:
from flask import Flask
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)

class HelloWorld(Resource):
def get(self):
return {'message': 'Hello, World!'}

api.add_resource(HelloWorld, '/')

if __name__ == '__main__':
app.run(debug=True)


2. Создание ресурса с параметрами:
from flask import Flask, request
from flask_restful import Api, Resource, reqparse

app = Flask(__name__)
api = Api(app)

parser = reqparse.RequestParser()
parser.add_argument('name', type=str, required=True, help='Name cannot be blank!')

class User(Resource):
def post(self):
args = parser.parse_args()
return {'message': f'Hello, {args["name"]}!'}

api.add_resource(User, '/user')

if __name__ == '__main__':
app.run(debug=True)


💡Заключение:
Flask-RESTful идеально подходит для разработчиков, которые хотят создать безопасные и масштабируемые веб-сервисы. Благодаря простоте использования и гибкости, Flask-RESTful легко интегрировать в ваши проекты и использовать для создания мощных веб-приложений.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥2
✈️Snowballstemmer — это библиотека Python для стемминга текста. Стемминг — это процесс сокращения слова до его основной или корневой формы. Например, слова "running", "runs", "runner" могут быть сокращены до основной формы "run". Snowballstemmer предоставляет алгоритмы стемминга для множества языков, что делает ее идеальным инструментом для предобработки текстовых данных в задачах машинного обучения и обработки естественного языка.

➡️Основные возможности Snowballstemmer:
- Множественные языки:
Snowballstemmer поддерживает стемминг для множества языков, включая английский, русский, немецкий, испанский и многие другие.

- Простота использования: Snowballstemmer предоставляет простой и интуитивный API, который позволяет быстро начать работу со стеммингом.

- Высокая эффективность: Snowballstemmer использует оптимизированные алгоритмы стемминга, что обеспечивает высокую скорость обработки текста.

➡️Примеры использования:
1. Стемминг текста на английском языке:
from snowballstemmer import stemmer

# Создание стеммера для английского языка
english_stemmer = stemmer("english")

# Стемминг слов
words = ["running", "runs", "runner"]
stemmed_words = [english_stemmer.stemWord(word) for word in words]

print(stemmed_words) # Вывод: ['run', 'run', 'run']


2. Использование Snowballstemmer с NLTK:
import nltk
from snowballstemmer import stemmer

# Создание стеммера для английского языка
english_stemmer = stemmer("english")

# Токенизация текста
text = "NLTK is a leading platform for building Python programs to work with human language data."
words = nltk.word_tokenize(text)

# Стемминг слов
stemmed_words = [english_stemmer.stemWord(word) for word in words]

print(stemmed_words) # Вывод: ['NLTK', 'is', 'a', 'lead', 'platform', 'for', 'build', 'Python', 'program', 'to', 'work', 'with', 'human', 'language', 'data', '.']


3. Стемминг текста на русском языке:
from snowballstemmer import stemmer

# Создание стеммера для русского языка
russian_stemmer = stemmer("russian")

# Стемминг слов
words = ["бег", "бегущий", "бегун"]
stemmed_words = [russian_stemmer.stemWord(word) for word in words]

print(stemmed_words) # Вывод: ['бег', 'бегущ', 'бегун']


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥2
✈️Создание игры "Сапёр" в Python, может быть интересным и небольшим проектом для начинающих программистов. Вот пример простой консольной версии игры "Сапёр" на Python:

import random

def create_board(rows, cols, bombs):
board = [[' ' for _ in range(cols)] for _ in range(rows)]

for _ in range(bombs):
row = random.randint(0, rows - 1)
col = random.randint(0, cols - 1)

while board[row][col] == '*':
row = random.randint(0, rows - 1)
col = random.randint(0, cols - 1)

board[row][col] = '*'

return board

def print_board(board):
for row in board:
print(" ".join(row))

def count_bombs(row, col, board):
count = 0
for r in range(row - 1, row + 2):
for c in range(col - 1, col + 2):
if r >= 0 and r < len(board) and c >= 0 and c < len(board[0]):
if board[r][c] == '*':
count += 1
return count

def main():
rows = 5
cols = 5
bombs = 5

board = create_board(rows, cols, bombs)

print_board(board)

while True:
user_row = int(input("Enter row: "))
user_col = int(input("Enter column: "))

if board[user_row][user_col] == '*':
print("Game over! You hit a bomb.")
break

bombs_near = count_bombs(user_row, user_col, board)
board[user_row][user_col] = str(bombs_near)

print_board(board)

if __name__ == "__main__":
main()


🔫Этот код создает простую версию игры "Сапёр" с размером поля 5x5 и 5 бомбами. Игрок должен вводить координаты клетки поля, и если там нет бомбы, то открывается число, указывающее, сколько бомб находится рядом с этой клеткой. Когда игрок попадает на бомбу, игра завершается.

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥2
✈️Joblib — это библиотека Python, предназначенная для сериализации объектов Python, особенно полезная для сохранения и загрузки моделей машинного обучения. Joblib предоставляет эффективные инструменты для работы с большими данными и моделями, что делает ее идеальным инструментом для разработчиков и исследователей, работающих с машинным обучением.

➡️Основные возможности Joblib:
- Сериализация объектов: Joblib позволяет сериализовать (сохранять) и десериализовать (загружать) объекты Python, включая сложные структуры данных и модели машинного обучения.

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

- Поддержка параллельных вычислений: Joblib предоставляет инструменты для параллельных вычислений, что позволяет ускорить обработку данных и моделей.

➡️Пример cохранение модели машинного обучения:
import joblib
from sklearn.ensemble import RandomForestClassifier

# Создание модели
model = RandomForestClassifier(n_estimators=100, random_state=42)

# Обучение модели
# model.fit(X_train, y_train)

# Сохранение модели
joblib.dump(model, 'model.pkl')


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
✈️DataCleaner — это библиотека Python для очистки и предобработки данных. Она предоставляет инструменты для удаления дубликатов, обработки пропущенных значений, нормализации данных и других операций, которые являются важными этапами в подготовке данных для анализа и машинного обучения. DataCleaner помогает упростить и автоматизировать процесс предобработки данных, что делает ее идеальным инструментом для аналитиков и разработчиков, работающих с данными.

➡️Примеры использования:
1. Удаление дубликатов:
import pandas as pd
from datacleaner import autoclean

# Создание DataFrame
data = pd.DataFrame({
'A': [1, 2, 2, 4],
'B': [5, 6, 6, 8]
})

# Удаление дубликатов
cleaned_data = autoclean(data)
print(cleaned_data)


2.Обработка пропущенных значений:
import pandas as pd
from datacleaner import autoclean

# Создание DataFrame с пропущенными значениями
data = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [5, None, 7, 8]
})

# Обработка пропущенных значений
cleaned_data = autoclean(data)
print(cleaned_data)


3. Нормализация данных:
import pandas as pd
from datacleaner import normalize

# Создание DataFrame
data = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
})

# Нормализация данных
normalized_data = normalize(data)
print(normalized_data)


💡Заключение:
Таким образом, использование DataCleaner в Python поможет вам быстро и эффективно обработать данные, улучшить их качество и подготовить для дальнейшего анализа.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍2
✈️Команда «python -m timeit» в консоли используется для тестирования производительности фрагмента кода на Python путем многократного его выполнения и измерения времени выполнения.

Например:
python -m timeit "some_function()"

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥3
👍61
Что выдаст код выше
Anonymous Quiz
5%
2
6%
Python
13%
t
6%
0
47%
Пустая строка
23%
Error
👍12🤔5🤨2
🤔Разбор

Строка "Python" имеет следующие индексы:

Индекс: 0 1 2 3 4 5
Элементы: P y t h o n


В срезе s[4:2] ты указываешь начать с индекса 4 ('o') и закончить на индексе 2 ('t') — но индекс начала больше индекса конца , и в Python такой срез возвращает пустую строку.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥53
✈️PyTesseract — это библиотека Python для распознавания текста на изображениях. Она является оберткой для популярного инструмента Tesseract OCR (Optical Character Recognition) и позволяет легко интегрировать функции распознавания текста в ваши проекты. PyTesseract поддерживает множество языков и форматов изображений, что делает ее идеальным инструментом для задач, связанных с обработкой изображений и распознаванием текста.

➡️Основные возможности PyTesseract:
- Распознавание текста: PyTesseract позволяет распознавать текст на изображениях, включая поддержку множества языков.

- Поддержка множества форматов изображений: PyTesseract поддерживает множество форматов изображений, включая JPEG, PNG, BMP и другие.

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

➡️Пример использования:
import pytesseract
from PIL import Image

# Загрузка изображения
image = Image.open('example.jpg')

# Распознавание текста
text = pytesseract.image_to_string(image, lang='eng')
print(text)


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥43
✈️Tweepy — это библиотека Python для работы с API Twitter. Она позволяет разработчикам легко интегрировать свои приложения с Twitter, выполняя различные операции, такие как публикация твитов, чтение ленты, поиск твитов и многое другое. Tweepy предоставляет простой и мощный интерфейс для работы с API Twitter, что делает ее идеальным инструментом для создания приложений, связанных с социальными сетями.

➡️Основные возможности Tweepy:
- Публикация твитов: Tweepy позволяет публиковать твиты и изображения в вашем аккаунте Twitter.

- Чтение ленты: Tweepy позволяет читать ленту твитов, включая твиты из вашего аккаунта и других пользователей.

- Поиск твитов: Tweepy предоставляет инструменты для поиска твитов по ключевым словам, хэштегам и другим параметрам.

- Управление аккаунтом: Tweepy позволяет управлять вашим аккаунтом Twitter, включая чтение и отправку сообщений, блокировку и разблокировку пользователей.

- Поддержка аутентификации: Tweepy поддерживает аутентификацию с использованием OAuth, что позволяет безопасно работать с API Twitter.

➡️Пример публикации твита:
import tweepy

# Ключи и токены для аутентификации
consumer_key = 'YOUR_CONSUMER_KEY'
consumer_secret = 'YOUR_CONSUMER_SECRET'
access_token = 'YOUR_ACCESS_TOKEN'
access_token_secret = 'YOUR_ACCESS_TOKEN_SECRET'

# Аутентификация
auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret)
api = tweepy.API(auth)

# Публикация твита
api.update_status('Hello, Twitter!')


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3🔥2
🌴BST - это древовидная структура данных, в которой каждый узел имеет максимум два потомка. Основное свойство BST заключается в том, что каждый узел на большее значение, чем все узлы в его левом поддереве и на меньшее значение, чем все узлы в его правом поддереве. Этот уникальный атрибут делает BST идеальным для быстрого поиска данных.

➡️Пример BST на Python:
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key

def insert(root, key):
if root is None:
return Node(key)
else:
if root.val < key:
root.right = insert(root.right, key)
else:
root.left = insert(root.left, key)
return root

def inorder(root):
if root:
inorder(root.left)
print(root.val),
inorder(root.right)

r = Node(50)
r = insert(r, 30)
r = insert(r, 20)
r = insert(r, 40)
r = insert(r, 70)
r = insert(r, 60)
r = insert(r, 80)

inorder(r)

⬆️В этом примере мы создаем BST с помощью Python. Мы определяем класс Node, который представляет узел в BST. Затем мы определяем функции для вставки нового узла и для обхода BST.

➡️Преимущества и недостатки BST

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍53
✈️Requests-OAuthlib — это библиотека Python для аутентификации OAuth. Она позволяет легко интегрировать аутентификацию OAuth в ваши приложения, что делает ее идеальным инструментом для работы с API, требующими аутентификации OAuth. Requests-OAuthlib поддерживает множество сервисов, включая Twitter, GitHub, Google и другие.

➡️Основные возможности Requests-OAuthlib:
- Поддержка OAuth 1.0 и OAuth 2.0: Requests-OAuthlib поддерживает аутентификацию OAuth 1.0 и OAuth 2.0, что позволяет работать с различными API.

- Поддержка множества сервисов: Requests-OAuthlib поддерживает множество сервисов, включая Twitter, GitHub, Google и другие.

- Безопасность: Requests-OAuthlib обеспечивает безопасную аутентификацию, что важно для работы с API, требующими аутентификации.

➡️Пример Аутентификации OAuth 1.0 с Twitter:
from requests_oauthlib import OAuth1Session

# Ключи и токены для аутентификации
consumer_key = 'YOUR_CONSUMER_KEY'
consumer_secret = 'YOUR_CONSUMER_SECRET'
access_token = 'YOUR_ACCESS_TOKEN'
access_token_secret = 'YOUR_ACCESS_TOKEN_SECRET'

# Создание сессии OAuth 1.0
twitter = OAuth1Session(consumer_key, client_secret=consumer_secret,
resource_owner_key=access_token,
resource_owner_secret=access_token_secret)

# Запрос к API Twitter
response = twitter.get('https://api.twitter.com/1.1/account/verify_credentials.json')

# Вывод результата
print(response.json())


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92👍2
✈️В Python можно передать набор значений в функцию с помощью *args и **kwargs.

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

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

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥32
✈️Flask-Login — это расширение для фреймворка Flask, которое предоставляет простой и мощный способ управления аутентификацией пользователей. Flask-Login позволяет легко добавить функции входа, выхода и управления сеансами в ваши веб-приложения. Это идеальный инструмент для разработчиков, которые хотят создать безопасные и функциональные веб-приложения с аутентификацией пользователей.

➡️Основные возможности Flask-Login:
- Управление сеансами: Flask-Login позволяет управлять сеансами пользователей, включая вход, выход и проверку аутентификации.

- Интеграция с Flask: Flask-Login полностью интегрирован во Flask, что позволяет использовать все возможности Flask вместе с функциями аутентификации.

- Поддержка аутентификации: Flask-Login поддерживает различные методы аутентификации, включая аутентификацию по паролю и токенам.

- Безопасность: Flask-Login обеспечивает безопасную аутентификацию, что важно для создания надежных веб-приложений.

➡️Пример создания простого приложения с аутентификацией:
from flask import Flask, request, redirect, url_for, render_template
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user

app = Flask(__name__)
app.secret_key = 'your_secret_key'

# Конфигурация Flask-Login
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'

# Мок-база данных пользователей
users = {'user1': {'password': 'password1'}}

class User(UserMixin):
def __init__(self, id):
self.id = id

@login_manager.user_loader
def load_user(user_id):
return User(user_id)

@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
if username in users and users[username]['password'] == password:
user = User(username)
login_user(user)
return redirect(url_for('protected'))
return 'Invalid username or password'
return render_template('login.html')

@app.route('/protected')
@login_required
def protected():
return 'Logged in as: ' + current_user.id

@app.route('/logout')
@login_required
def logout():
logout_user()
return 'Logged out'

if __name__ == '__main__':
app.run(debug=True)


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥2
✈️Flask-Migrate — это расширение для фреймворка Flask, которое упрощает управление миграциями баз данных. Flask-Migrate интегрирует Alembic, мощный инструмент для миграции баз данных, с Flask, что позволяет автоматизировать процесс изменения структуры базы данных. Это идеальный инструмент для разработчиков, которые хотят легко и безопасно обновлять структуру базы данных в своих веб-приложениях.

➡️Основные возможности Flask-Migrate:
- Автоматическая генерация миграций: Flask-Migrate позволяет автоматически генерировать миграции на основе изменений в моделях базы данных.

- Интеграция с Alembic: Flask-Migrate интегрирует Alembic, что позволяет использовать все возможности Alembic для управления миграциями.

- Поддержка множества баз данных: Flask-Migrate поддерживает множество реляционных баз данных, включая SQLite, PostgreSQL, MySQL и другие.

➡️Примеры использования. Инициализация миграций:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)

# Инициализация миграций
# flask db init
# flask db migrate -m "Initial migration."
# flask db upgrade


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥1
👍7🔥2
🤔9🤓3🤨2👍1
🤔Разбор

Если мы ожидаем, что match должен перейти ко второму кейсу, потому что где-то произошла неявная распаковка, то это ошибка.
Потому что структура данных, с которой работает match, — это конкретный кортеж: ('a', 'b', 'c', 'd', 'e').
И первый кейс точно совпадает с этой структурой.


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥4
✈️Flask-Admin — это расширение для фреймворка Flask, которое позволяет быстро создавать административные интерфейсы для управления данными в ваших веб-приложениях. Flask-Admin предоставляет мощные инструменты для создания, чтения, обновления и удаления данных (CRUD), что делает его идеальным инструментом для разработчиков, которые хотят добавить административный интерфейс в свои проекты.

➡️Основные возможности Flask-Admin:
- Быстрое создание административных интерфейсов: Flask-Admin позволяет быстро создавать административные интерфейсы для управления данными в ваших веб-приложениях.

- Поддержка множества баз данных: Flask-Admin поддерживает множество реляционных баз данных, включая SQLite, PostgreSQL, MySQL и другие.

- Кастомизация: Flask-Admin позволяет легко кастомизировать административные интерфейсы, включая изменение шаблонов, стилей и функциональности.

➡️Пример cоздания административного интерфейса:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
app.config['SECRET_KEY'] = 'your_secret_key'
db = SQLAlchemy(app)

# Создание модели
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)

# Создание административного интерфейса
admin = Admin(app, name='Admin Panel', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))

if __name__ == '__main__':
app.run(debug=True)


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3🔥1
✈️Flask-Caching — это расширение для фреймворка Flask, которое позволяет легко добавить кэширование в ваши веб-приложения. Кэширование помогает улучшить производительность приложения, уменьшая время отклика и нагрузку на сервер. Flask-Caching поддерживает множество кэш-бэкендов, включая простой кэш, Redis, Memcached и другие.

➡️Основные возможности Flask-Caching:
- Поддержка множества кэш-бэкендов: Flask-Caching поддерживает множество кэш-бэкендов, включая простой кэш, Redis, Memcached и другие.

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

- Конфигурация и настройка: Flask-Caching позволяет легко настроить кэш, включая время жизни кэша, размер кэша и другие параметры.

➡️Пример использования простого кэша:
from flask import Flask
from flask_caching import Cache

app = Flask(__name__)
# Конфигурация кэша
app.config['CACHE_TYPE'] = 'SimpleCache'
cache = Cache(app)

@app.route('/')
@cache.cached(timeout=50) # Кэширование на 50 секунд
def index():
return 'Hello, World!'


Полезные ссылки:
Официальный сайт
GitHub

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