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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
😁7👍53
Что выдаст код выше
Anonymous Quiz
4%
Beer
15%
eB
25%
Ничего
33%
ee
23%
Error
5👍3🤓3🤔1
🤔Разбор

Если мы указываем в срезе, что мы идем от большего индекса к меньшему, то 3-им параметром должны указать шаг. (по умолчанию он равен 1. А от 2 до 1 с шагом в +1 мы никак не доберемся).
В данном примере мы получим пустоту. (ничего).

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

➡️Основные возможности SpeechRecognition:
- Распознавание речи: SpeechRecognition позволяет распознавать речь из аудио-файлов и микрофона.

- Поддержка множества аудио-форматов: SpeechRecognition поддерживает множество аудио-форматов, включая WAV, MP3 и другие.

- Интеграция с облачными сервисами:
SpeechRecognition может интегрироваться с облачными сервисами, такими как Google Speech Recognition, что позволяет использовать мощные инструменты распознавания речи.

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

➡️Примеры использования:
1. Распознавание речи из микрофона:
import speech_recognition as sr

# Создание распознавателя
recognizer = sr.Recognizer()

# Использование микрофона
with sr.Microphone() as source:
print("Скажите что-нибудь...")
audio = recognizer.listen(source)

# Распознавание речи
try:
text = recognizer.recognize_google(audio, language="ru-RU")
print("Вы сказали: " + text)
except sr.UnknownValueError:
print("Не удалось распознать речь")
except sr.RequestError as e:
print("Ошибка сервиса распознавания речи; {0}".format(e))


2. Распознавание речи из аудио-файла:
import speech_recognition as sr

# Создание распознавателя
recognizer = sr.Recognizer()

# Загрузка аудио-файла
audio_file = sr.AudioFile('example.wav')

# Распознавание речи
with audio_file as source:
audio = recognizer.record(source)

try:
text = recognizer.recognize_google(audio, language="ru-RU")
print("Текст: " + text)
except sr.UnknownValueError:
print("Не удалось распознать речь")
except sr.RequestError as e:
print("Ошибка сервиса распознавания речи; {0}".format(e))


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
✈️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