- Поддержка цветов и отступов
- Простой и мощный столбцовый принтер
- Итераторный индикатор прогресса
- Неявная обработка аргументов
- Поддержка Unix-пайпов
- Управление каталогами приложений
1. Отступы и цитаты:
from clint.textui import puts, indent
puts('Неотступленный текст')
with indent(4):
puts('Отступленный текст')
2. Цветной текст:
from clint.textui import colored, puts
puts(colored.red('Красный текст'))
3. Чтение аргументов командной строки:
from clint import arguments
args = arguments.Args()
first_arg = args.get(0)
Clint подходит разработчикам, которые хотят быстро добавить форматирование текста и удобство в свои скрипты без тяжёлых зависимостей. Он предлагает множество функций, которые делают разработку более простой и эффективной.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥2
- Чтение и запись YAML-файлов: PyYAML позволяет легко читать и записывать данные в формате YAML.
- Поддержка различных типов данных: PyYAML поддерживает различные типы данных, включая словари, списки, строки, числа и другие.
- Безопасная загрузка данных: PyYAML предоставляет безопасный способ загрузки данных из YAML-файлов, что предотвращает выполнение вредоносного кода.
- Интеграция с другими библиотеками: PyYAML легко интегрируется с другими библиотеками Python, такими как Flask, Django и Pandas, что позволяет использовать ее в существующих проектах.
- Простота использования: PyYAML предоставляет простой и интуитивный API, который позволяет быстро начать работу с форматом YAML.
1. Чтение YAML-файла:
import yaml
# Пример YAML-файла
yaml_file = """
name: John Doe
age: 30
address:
street: 123 Main St
city: Anytown
state: CA
"""
# Загрузка данных из YAML-файла
data = yaml.safe_load(yaml_file)
# Вывод данных
print(data['name']) # Вывод: John Doe
print(data['address']['city']) # Вывод: Anytown
2. Запись данных в YAML-файл:
import yaml
# Пример данных
data = {
'name': 'John Doe',
'age': 30,
'address': {
'street': '123 Main St',
'city': 'Anytown',
'state': 'CA'
}
}
# Запись данных в YAML-файл
with open('output.yaml', 'w') as file:
yaml.dump(data, file)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥2
- Интеграция с WTForms: Flask-WTF интегрирует Flask с WTForms, что позволяет использовать все возможности WTForms для создания и валидации форм.
- Валидация данных: Flask-WTF предоставляет мощные инструменты для валидации данных, включая встроенные валидаторы и возможность создания собственных валидаторов.
- CSRF-защита: Flask-WTF автоматически добавляет CSRF-защиту для всех форм, что повышает безопасность вашего приложения.
1. Создание формы:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, validators
class LoginForm(FlaskForm):
username = StringField('Username', [validators.Length(min=4, max=25)])
password = PasswordField('Password', [
validators.DataRequired(),
validators.EqualTo('confirm', message='Passwords must match')
])
confirm = PasswordField('Repeat Password')
2. Использование формы в Flask:
from flask import Flask, render_template, flash, redirect, url_for
from forms import LoginForm
app = Flask(__name__)
app.secret_key = 'your_secret_key'
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
flash('Form validated')
return redirect(url_for('home'))
return render_template('login.html', form=form)
3. Создание шаблона HTML для формы:
<!-- templates/login.html -->
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form method="post">
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>
{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>
{{ form.confirm.label }}<br>
{{ form.confirm(size=32) }}
</p>
<p><input type="submit" value="Login"></p>
</form>
</body>
</html>
Официальный сайт
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥2
Что выдаст код выше❔
Anonymous Quiz
2%
{}
2%
<class 'dict'>
12%
dict(["AD", "OL", "QL"])
45%
{"AB": None, "OL": None, "QL": None}
26%
{'A': 'B', 'O': 'L', 'Q': 'N'}
14%
Error
🤔10🤷♀5👍3🤓1👀1
dict() работает так, что он либо ничего не принимает и возвращает {}, либо принимает список из списков ключ-значение.
Вот так:
[["key", "value"], ] -> {"key": "value",}
Но мы же знаем что строка тоже итерируется, следовательно первый символ строки становится ключом, а второй - значением. Так и выходит результат {'A': 'B', 'O': 'L', 'Q': 'N'}
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21👍5⚡4🔥3
- CRUD-операции: PyMongo предоставляет полный набор CRUD-операций (создание, чтение, обновление, удаление) для работы с данными в MongoDB.
- Поддержка индексов: PyMongo позволяет создавать и управлять индексами в MongoDB, что повышает производительность запросов.
- Агрегация и группировка: PyMongo поддерживает агрегацию и группировку данных, что позволяет выполнять сложные аналитические запросы.
- Транзакции: PyMongo поддерживает транзакции, что позволяет выполнять атомарные операции в базе данных.
- Поддержка репликации и шардинга: PyMongo поддерживает репликацию и шардинг, что позволяет масштабировать базу данных и обеспечить высокую доступность.
1. Подключение к MongoDB:
from pymongo import MongoClient
# Создание подключения к MongoDB
client = MongoClient('mongodb://localhost:27017/')
# Выбор базы данных
db = client['mydatabase']
2. Создание коллекции и вставка данных:
# Создание коллекции
collection = db['users']
# Вставка данных
user = {"name": "John", "age": 30, "city": "New York"}
result = collection.insert_one(user)
print('One post: {0}'.format(result.inserted_id))
Официальный сайт
GitHub
PyMongo идеально подходит для разработчиков, которые хотят быстро и легко интегрировать MongoDB в свои проекты. Так же идеально подходит для быстрого старта проектов, гибких структур данных (например, если у разных пользователей — разные поля), прототипирования и MVP.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥3👌2
Ты собрал красивый замок (проект), поставил его на стол (твой комп). Всё работает.
Но теперь ты хочешь:
- Перекинуть замок другу — и у него не хватает деталей (зависимостей).
- Поставить его на полку в другой комнате — и там другой размер стола (окружение).
- Запустить сразу 10 таких замков — и вдруг всё ломается.
Это контейнеризация.
Docker упаковывает твой проект со всеми зависимостями: библиотеками, окружением, системными настройками — и превращает в контейнер, который можно запускать где угодно.
Контейнер — это как мини-компьютер внутри твоего компа, где всё настроено именно под твой проект.
Больше никаких “у меня не работает, а у тебя работает”
Всё окружение проекта — в одной команде
docker runПереезд на сервер — в пару кликов
Можно тестить, не ломая свою систему
Легко клонировать проекты и передавать команде
Изоляция = безопасность
Обычно:
pip install flask
python app.py
С Docker:
FROM python:3.10
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Затем:
docker build -t myapp .
docker run -p 5000:5000 myapp
- Он сэкономит тебе часы — буквально.
- Ты начнёшь думать как профессиональный разработчик.
- И это must-have навык в любом резюме.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤6🔥3
- Автоматическая генерация документации: FastAPI автоматически генерирует документацию для вашего API в форматах OpenAPI, Swagger и ReDoc. Это позволяет быстро и легко документировать ваши endpoints.
- Высокая производительность: FastAPI основан на Starlette и Pydantic, что обеспечивает высокую производительность и низкую задержку.
- Типизация и валидация данных: FastAPI использует типы Python для валидации данных, что позволяет автоматически проверять и преобразовывать данные запросов.
- Асинхронность: FastAPI поддерживает асинхронные функции, что позволяет создавать высокопроизводительные веб-приложения.
1. Создание простого API:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello World"}
2. Создание параметризированных маршрутов:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
3. Создание запросов с телом:
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
app = FastAPI()
@app.post("/items/")
async def create_item(item: Item):
return item
Официальный сайт
GitHub
FastAPI — это современный и мощный фреймворк для создания веб-приложений и API на Python. Он предоставляет простой и интуитивный API, который позволяет быстро начать разработку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥3
- Интерактивные визуализации: Dash позволяет создавать интерактивные визуализации с помощью Plotly, что делает его идеальным инструментом для создания дашбордов и аналитических приложений.
- Поддержка множества компонентов: Dash поддерживает множество компонентов, включая графики, таблицы, кнопки, переключатели и другие, что позволяет создавать сложные пользовательские интерфейсы.
- Развертывание: Dash позволяет легко развертывать веб-приложения на серверах и облачных платформах, таких как Heroku, AWS и Google Cloud.
1. Создание простого веб-приложения:
import dash
from dash import html, dcc
import plotly.express as px
import pandas as pd
# Создание приложения
app = dash.Dash(__name__)
# Данные
df = pd.DataFrame({
"Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
"Amount": [4, 1, 2, 2, 4, 5],
"City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]
})
# Создание графика
fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
# Layout
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for your data.
'''),
dcc.Graph(
id='example-graph',
figure=fig
)
])
# Запуск сервера
if __name__ == '__main__':
app.run_server(debug=True)
2. Создание интерактивного дашборда:
import dash
from dash import html, dcc, Input, Output
import plotly.express as px
import pandas as pd
# Создание приложения
app = dash.Dash(__name__)
# Данные
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')
# Layout
app.layout = html.Div([
dcc.Graph(id='graph-with-slider'),
dcc.Slider(
df['year'].min(),
df['year'].max(),
step=None,
value=df['year'].min(),
marks={str(year): str(year) for year in df['year'].unique()},
id='year-slider'
)
])
# Callback
@app.callback(
Output('graph-with-slider', 'figure'),
Input('year-slider', 'value'))
def update_figure(selected_year):
filtered_df = df[df.year == selected_year]
fig = px.scatter(filtered_df, x="gdpPercap", y="lifeExp",
size="pop", color="continent", hover_name="country",
log_x=True, size_max=55)
fig.update_layout(transition_duration=500)
return fig
# Запуск сервера
if __name__ == '__main__':
app.run_server(debug=True)
Официальный сайт
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥3
import tensorflow as tf
# Создание логгера TensorBoard
writer = tf.summary.create_file_writer('path/to/log-directory')
# Запись метрик
with writer.as_default():
for epoch in range(10):
tf.summary.scalar('loss', 0.5 / (epoch + 1), step=epoch)
tf.summary.scalar('accuracy', 0.9 + 0.1 * epoch, step=epoch)
writer.flush()
# Создание модели
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(10, activation='relu', input_shape=(10,)),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# Компиляция модели
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# Создание логгера TensorBoard
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir='path/to/log-directory', histogram_freq=1)
# Обучение модели
model.fit(x_train, y_train, epochs=10, callbacks=[tensorboard_callback])
Официальный сайт
GitHub
TensorBoard идеально подходит для разработчиков и исследователей, которые хотят лучше понимать и улучшать свои модели машинного обучения. А благодаря простоте использования и интеграции с TensorFlow, TensorBoard легко использовать в уже существующих проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3
🤓7❤4👍2🤔1🤨1👀1
Создали объект класса. В поле b (a.b) лежит число 3. В поле c, объекта a, мы создаем значение 5.
// - операция целочисленного деления. 5 // 3 —> 1 (3 помещается в 5 целиком только 1 раз)
Ответ: 1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5🔥2🙈1
- Широкий спектр визуализаций: Seaborn поддерживает множество типов визуализаций, включая линейные графики, гистограммы, диаграммы, тепловые карты, boxplots, violin plots и многое другое.
- Кастомизация: Seaborn позволяет легко настраивать цвета, стили и другие аспекты визуализаций, что делает их более привлекательными и информативными.
- Статистическая визуализация: Seaborn предоставляет инструменты для статистической визуализации, включая распределения, корреляции и другие статистические метрики.
1. Создание линейного графика:
import seaborn as sns
import matplotlib.pyplot as plt
# Данные
data = {'x': [1, 2, 3, 4, 5],
'y': [2, 3, 5, 7, 11]}
# Создание графика
sns.lineplot(x='x', y='y', data=data)
plt.title('Линейный график')
plt.show()
2. Создание гистограммы:
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Данные
data = np.random.randn(1000)
# Создание гистограммы
sns.histplot(data, kde=True)
plt.title('Гистограмма')
plt.show()
3. Создание тепловой карты:
import seaborn as sns
import matplotlib.pyplot as plt
# Данные
data = sns.load_dataset('flights')
data = data.pivot('month', 'year', 'passengers')
# Создание тепловой карты
sns.heatmap(data, annot=True, fmt='d', cmap='coolwarm')
plt.title('Тепловая карта')
plt.show()
Официальный сайт
GitHub
Документация
Seaborn идеально подходит для аналитиков и исследователей, которые хотят быстро и легко создавать красивые и информативные графики.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥2
- Токенизация: NLTK предоставляет инструменты для разделения текста на слова, предложения и другие элементы.
- Тегирование частей речи: NLTK позволяет анализировать текст и определять части речи (существительные, глаголы, прилагательные и т. д.).
- Стемминг и лемматизация: NLTK предоставляет инструменты для стемминга (уменьшение слов до их основной формы) и лемматизации (приведение слов к их словарной форме).
- Классификация и кластеризация: NLTK поддерживает машинное обучение и предоставляет инструменты для классификации и кластеризации текстовых данных.
- Анализ сентимента: NLTK предоставляет инструменты для анализа сентимента, что позволяет определить эмоциональную окраску текста.
- Корпуса и ресурсы: NLTK включает множество корпусов и ресурсов для обработки естественного языка, включая словари, тезаурусы и корпуса текстов.
import nltk
from nltk.tokenize import word_tokenize, sent_tokenize
# Текст
text = "NLTK is a leading platform for building Python programs to work with human language data."
# Токенизация на предложения
sentences = sent_tokenize(text)
print(sentences)
# Токенизация на слова
words = word_tokenize(text)
print(words)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥2
Метод
🐍 Pythoner
str() используется для создания удобочитаемого представления объекта для конечного пользователя, тогда как repr() предназначен для создания официального строкового представления объекта, которое можно использовать для воссоздания того же объекта. repr() часто используется для отладки и разработки, так как он должен быть точным и однозначным. str(), с другой стороны, обычно используется для предоставления дружественного к пользователю представления объекта и может быть менее подробным или точным. Если str() не определен, Python будет использовать repr() в качестве запасного варианта.Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥4
- Автоматизация веб-браузеров: Selenium позволяет управлять веб-браузерами, такими как Chrome, Firefox, Safari и Edge.
- Поддержка множества браузеров: Selenium поддерживает множество веб-браузеров, что позволяет использовать его в различных средах.
- Поддержка тестирования: Selenium часто используется для тестирования веб-приложений, что позволяет автоматизировать тестирование и улучшить качество кода.
1. Запуск веб-браузера и навигация:
from selenium import webdriver
# Создание экземпляра драйвера
driver = webdriver.Chrome()
# Открытие веб-страницы
driver.get('https://example.com')
# Получение заголовка страницы
title = driver.title
print(title)
# Закрытие веб-браузера
driver.quit()
2. Заполнение формы и отправка данных:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# Создание экземпляра драйвера
driver = webdriver.Chrome()
# Открытие веб-страницы
driver.get('https://example.com/form')
# Заполнение формы
input_element = driver.find_element(By.NAME, 'username')
input_element.send_keys('testuser')
password_element = driver.find_element(By.NAME, 'password')
password_element.send_keys('testpass')
# Отправка формы
password_element.send_keys(Keys.RETURN)
# Закрытие веб-браузера
driver.quit()
3. Клики и взаимодействие с элементами:
from selenium import webdriver
from selenium.webdriver.common.by import By
# Создание экземпляра драйвера
driver = webdriver.Chrome()
# Открытие веб-страницы
driver.get('https://example.com')
# Клик по элементу
button = driver.find_element(By.ID, 'submit-button')
button.click()
# Закрытие веб-браузера
driver.quit()
Официальный сайт
GitHub
Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥3
Рассказываю, как без шаманства и танцев с бубном оформить себе ChatGPT и врубить Спотик:
Для этого есть ggsel — и это не только ключи к играм и роблаксовые донаты, а целый склад всего, что упрощает жизнь:
🟢 ChatGPT Plus, Midjourney, Photoshop и прочие нейросети — чтобы генерить, творить и делать вид, что ты в этом шаришь
🟢 YouTube Premium, Netflix, Spotify, Canva Pro — прокрастинация и быт под контролем
🟢 Windows, антивирусы, офисы и прочее ПО — если надоело видеть «Активируйте Windows» в правом нижнем углу
Продавцы — живые, с рейтингами и отзывами, без скамов. Так что можно брать спокойно, за этим следят!
Для этого есть ggsel — и это не только ключи к играм и роблаксовые донаты, а целый склад всего, что упрощает жизнь:
Продавцы — живые, с рейтингами и отзывами, без скамов. Так что можно брать спокойно, за этим следят!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥2🗿1