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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
🤔Разбор

Разбор выражения x > y and x or y
Вычисление x > y
x = 5, y = 3
x > y возвращает True.

Вычисление x > y and x:
x > y равно True, поэтому результатом and будет второй операнд — x (равно 5).

Вычисление (x > y and x) or y:
Результат (x > y and x) равен 5.
5 является "истинным" значением, поэтому оператор or возвращает первый операнд — 5.

Итоговый результат:
Значение переменной z становится равным 5, и это значение выводится на экран.


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

➡️Основные возможности Pytest:
- Простота использования: Pytest позволяет писать тесты на Python, используя простой и интуитивный синтаксис.

- Автоматическое обнаружение тестов: Pytest автоматически обнаруживает и запускает тесты, что упрощает процесс тестирования.

- Мощные возможности утверждений: Pytest предоставляет мощные инструменты для утверждений, которые позволяют легко проверять результаты тестов.

- Поддержка фикстур: Pytest поддерживает фикстуры, которые позволяют создавать и использовать общие данные и ресурсы в тестах.

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

- Интеграция с другими инструментами: Pytest легко интегрируется с другими инструментами и библиотеками Python, такими как Flask, Django и NumPy.

➡️Примеры использования:
1. Простой тест:
# test_example.py
def test_addition():
assert 1 + 1 == 2


2. Использование фикстур:
# test_example.py
import pytest

@pytest.fixture
def numbers():
return [1, 2, 3]

def test_sum(numbers):
assert sum(numbers) == 6


3. Параметризация тестов:
# test_example.py
import pytest

@pytest.mark.parametrize("a, b, expected", [
(1, 2, 3),
(4, 5, 9),
(6, 7, 13),
])
def test_addition(a, b, expected):
assert a + b == expected


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

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

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

➡️Основные возможности Clint:
- Поддержка цветов и отступов
- Простой и мощный столбцовый принтер
- Итераторный индикатор прогресса
- Неявная обработка аргументов
- Поддержка 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 подходит разработчикам, которые хотят быстро добавить форматирование текста и удобство в свои скрипты без тяжёлых зависимостей. Он предлагает множество функций, которые делают разработку более простой и эффективной.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥2
✈️PyYAML — это библиотека Python для работы с форматом YAML (YAML Ain't Markup Language). YAML — это популярный формат для сериализации данных, который широко используется для конфигурационных файлов, данных и других структур. PyYAML позволяет легко читать и записывать данные в формате YAML, что делает ее идеальным инструментом для работы с конфигурационными файлами и сериализации данных.

➡️Основные возможности PyYAML:
- Чтение и запись 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)


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

➡️Основные возможности Flask-WTF:
- Интеграция с 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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥2
👍7
🤔10🤷‍♀5👍3🤓1👀1
🤔Разбор

dict() работает так, что он либо ничего не принимает и возвращает {}, либо принимает список из списков ключ-значение.
Вот так:
[["key", "value"], ] -> {"key": "value",}
Но мы же знаем что строка тоже итерируется, следовательно первый символ строки становится ключом, а второй - значением. Так и выходит результат {'A': 'B', 'O': 'L', 'Q': 'N'}

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

➡️Основные возможности PyMongo:
- 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.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥3👌2
✈️Слышал про Docker, но до сих пор не понял, зачем он нужен? Или думаешь, что это «что-то для DevOps»? Сейчас всё разложу по полочкам — будет понятно даже если ты только начал кодить.

➡️Представь: твой проект — это коробка с Lego.

Ты собрал красивый замок (проект), поставил его на стол (твой комп). Всё работает.

Но теперь ты хочешь:
- Перекинуть замок другу — и у него не хватает деталей (зависимостей).
- Поставить его на полку в другой комнате — и там другой размер стола (окружение).
- Запустить сразу 10 таких замков — и вдруг всё ломается.

⬆️Docker решает это навсегда.

➡️Что такое Docker?

Это контейнеризация.
Docker упаковывает твой проект со всеми зависимостями: библиотеками, окружением, системными настройками — и превращает в контейнер, который можно запускать где угодно.

Контейнер — это как мини-компьютер внутри твоего компа, где всё настроено именно под твой проект.

➡️Зачем нужен Docker?
Больше никаких “у меня не работает, а у тебя работает”
Всё окружение проекта — в одной команде docker run
Переезд на сервер — в пару кликов
Можно тестить, не ломая свою систему
Легко клонировать проекты и передавать команде
Изоляция = безопасность

➡️Пример: Python-проект с Flask
Обычно:
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


⬆️Flask-приложение запускается даже на пустом сервере.

➡️Почему стоит начать с Docker уже сегодня?
- Он сэкономит тебе часы — буквально.
- Ты начнёшь думать как профессиональный разработчик.
- И это must-have навык в любом резюме.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥3
✈️FastAPI — это современный, быстрый и высокопроизводительный фреймворк для создания веб-приложений и API на Python 3.6 и выше, основанный на стандартных типах Python. FastAPI был разработан для создания простых и читаемых API, а также для обеспечения высокой производительности.

➡️Основные возможности FastAPI:
- Автоматическая генерация документации: 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, который позволяет быстро начать разработку.

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

➡️Основные возможности:
- Интерактивные визуализации: 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

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

➡️Использование TensorBoard с TensorFlow:
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
👍63🔥3
👍52
Что выдаст код выше
Anonymous Quiz
35%
1
17%
1.66
8%
2
4%
2.44
36%
Error
🤓74👍2🤔1🤨1👀1
🤔Разбор

Создали объект класса. В поле b (a.b) лежит число 3. В поле c, объекта a, мы создаем значение 5.
// - операция целочисленного деления. 5 // 3 —> 1 (3 помещается в 5 целиком только 1 раз)

Ответ: 1

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🔥2🙈1
✈️Seaborn — это библиотека Python для визуализации данных, построенная на основе Matplotlib. Она предоставляет высокий уровень интерфейса для создания статических, анимированных и интерактивных визуализаций.

➡️Основные возможности Seaborn:
- Широкий спектр визуализаций: 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 идеально подходит для аналитиков и исследователей, которые хотят быстро и легко создавать красивые и информативные графики.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥2
✈️NLTK (Natural Language Toolkit) — это библиотека Python для обработки естественного языка. Она предоставляет инструменты для анализа, классификации, токенизации, стемминга, тегирования и многих других операций с текстовыми данными. NLTK широко используется в академических исследованиях, а также в practical applications, таких как анализ текста, машинный перевод и sentiment analysis.

➡️Основные возможности NLTK:

- Токенизация: 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)


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥2
Метод str() используется для создания удобочитаемого представления объекта для конечного пользователя, тогда как repr() предназначен для создания официального строкового представления объекта, которое можно использовать для воссоздания того же объекта. repr() часто используется для отладки и разработки, так как он должен быть точным и однозначным. str(), с другой стороны, обычно используется для предоставления дружественного к пользователю представления объекта и может быть менее подробным или точным. Если str() не определен, Python будет использовать repr() в качестве запасного варианта.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥4
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣20😁6👍42