from bokeh.plotting import figure, show, output_file
# Исходные данные
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# Создаем график
plot = figure(title="Простой график", x_axis_label='x', y_axis_label='y')
plot.line(x, y, legend_label="Тренд", line_width=2)
# Сохраняем результат в файл
output_file("line.html")
# Показываем график
show(plot)
После выполнения кода откроется окно браузера с интерактивным графиком, где можно приближать, отдалять и перемещать данные.
from bokeh.models import HoverTool
from bokeh.plotting import figure, show
# Исходные данные
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# Создаем график
plot = figure(title="Интерактивный график", tools="pan,wheel_zoom,box_zoom,reset")
plot.circle(x, y, size=10, color="navy", alpha=0.5)
# Добавляем инструмент HoverTool для подсказок
hover = HoverTool(tooltips=[("x", "@x"), ("y", "@y")])
plot.add_tools(hover)
# Показываем график
show(plot)
Bokeh — это мощный инструмент для создания интерактивных визуализаций данных в Python. Он идеально подходит для аналитиков, учетных данных и разработчиков, которым нужна возможность создавать сложные графики с минимальными усилиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
itertools.chain — это полезная функция из стандартной библиотеки Python для объединения нескольких итерируемых объектов (списки, кортежи и т.д.) в один. Она помогает обходить несколько коллекций последовательно, как будто они являются одной.from itertools import chain
# Исходные данные
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]
# Объединяем списки с помощью chain
combined = chain(list1, list2, list3)
print("Объединенный результат:")
for item in combined:
print(item, end=" ") # Вывод: 1 2 3 4 5 6 7 8 9
from itertools import chain
# Разные типы данных
data1 = [10, 20, 30]
data2 = ('a', 'b', 'c')
data3 = range(3)
# Объединяем все вместе
result = list(chain(data1, data2, data3))
print("Результат после объединения:")
print(result) # Вывод: [10, 20, 30, 'a', 'b', 'c', 0, 1, 2]
itertools.chain позволяет эффективно работать с несколькими последовательностями как с одной, не создавая дополнительных списков и не тратя лишние ресурсы на их хранение в памяти.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🤔4🗿1
👍13👌4🔥3
/Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤3🔥3
import requests
# Отправляем GET-запрос
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
# Проверяем статус код
if response.status_code == 200:
print("Успешный запрос!")
data = response.json() # Преобразуем ответ в JSON
print(data)
else:
print(f"Ошибка: {response.status_code}")
import requests
# Данные для отправки
payload = {
"title": "foo",
"body": "bar",
"userId": 1
}
# Отправляем POST-запрос
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=payload)
# Обработка ответа
if response.status_code == 201:
print("Данные успешно созданы!")
print(response.json())
else:
print(f"Ошибка: {response.status_code}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥2
from PyInquirer import prompt
# Определение списка вопросов
questions = [
{
'type': 'list',
'name': 'action',
'message': 'Что вы хотите сделать?',
'choices': ['Добавить задачу', 'Удалить задачу', 'Выход']
},
{
'type': 'input',
'name': 'task',
'message': 'Введите название задачи:',
'when': lambda answers: answers['action'] == 'Добавить задачу'
}
]
# Отображение вопросов
answers = prompt(questions)
# Обработка ответов
if answers['action'] == 'Добавить задачу':
print(f"Задача '{answers['task']}' успешно добавлена!")
elif answers['action'] == 'Выход':
print("До свидания!")
— Пользователь выбирает действие из списка (Добавить задачу, Удалить задачу или Выход).
— Если выбрано "Добавить задачу", пользователю предлагается ввести название задачи.
— В зависимости от выбора выводится соответствующее сообщение.
- Интерактивность: Легко создавать сложные диалоги с различными типами вопросов (выбор из списка, ввод текста, подтверждение и т.д.).
- Красивый вывод: Библиотека обеспечивает эстетичный и удобный интерфейс для пользователей.
- Гибкость: Возможность настраивать поведение вопросов через параметры, такие как when и filter.
- Простота интеграции: Легко добавлять в существующие CLI-приложения без сложных изменений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3
from faker import Faker
# Создаем объект Faker (с русским языком)
fake = Faker('ru_RU')
# Генерируем фейковые данные
name = fake.name() # Фейковое имя
address = fake.address() # Фейковый адрес
email = fake.email() # Фейковый email
text = fake.text() # Фейковый текст
# Выводим результаты
print(f"Имя: {name}")
print(f"Адрес: {address}")
print(f"Email: {email}")
print(f"Текст: {text}")
Имя: Мария Иванова
Адрес: 123456, Москва, улица Ленина, дом 10, квартира 45
Email: maria.ivanova@example.com
Текст: Lorem ipsum dolor sit amet, consectetur adipiscing elit...
- Разнообразие данных: Поддерживает множество типов данных, включая имена, адреса, номера телефонов, даты, тексты и даже банковские счета.
- Локализация: Может генерировать данные на разных языках (включая русский).
- Простота использования: Легко интегрируется в проекты для быстрой генерации тестовых данных.
- Защита данных: Используйте Faker для замены реальных данных в тестовых средах, чтобы защитить конфиденциальную информацию.
Faker может быть использован для создания синтетических наборов данных, которые помогают обучать модели машинного обучения без необходимости использовать реальные данные. Это особенно полезно, когда доступ к реальным данным ограничен или они содержат чувствительную информацию.
Faker — это отличный инструмент для разработчиков, которым нужно быстро создавать реалистичные тестовые данные. Он делает процесс разработки и тестирования более эффективным и удобным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6🔥4
from blessings import Terminal
# Создаем объект терминала
term = Terminal()
# Используем цвета и стили
print(term.bold('Это жирный текст!'))
print(term.red_on_yellow('Красный текст на желтом фоне!'))
print(term.move_down + term.green('Текст ниже предыдущего!'))
from blessings import Terminal
term = Terminal()
# Перемещаем курсор в конкретную позицию
with term.location(10, 5): # (x=10, y=5)
print("Текст в определенной позиции!")
# Возвращаемся в конец вывода
print(term.move_down + "Конец программы.")
- Простота: Легко добавлять цвета, стили и управление курсором без сложных escape-последовательностей.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows (с использованием colorama).
- Читаемость кода: Аннотации, такие как term.bold или term.red, делают код более понятным и поддерживаемым.
- Минимальные зависимости: Библиотека легкая и не требует установки множества зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥2
import click
# Основная команда
@click.command()
@click.option('--count', default=1, help='Количество приветствий.')
@click.option('--name', prompt='Введите ваше имя', help='Имя пользователя.')
def hello(count, name):
"""Простая программа для вывода приветствия若干 раз."""
for _ in range(count):
click.echo(f"Привет, {name}!")
if __name__ == '__main__':
hello()
1. Пользователь запускает программу через терминал.
2. Программа предлагает ввести имя пользователя.
3. Выводит приветствие столько раз, сколько указано в параметре --count.
- Простота: Легко создавать CLI-приложения с минимальными усилиями.
- Гибкость: Поддерживает параметры, аргументы, флаги и вложенные команды.
- Автоматическая справка: Автоматически генерирует справку для ваших команд.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows.
Click — это отличный выбор для разработчиков, которым нужно быстро создавать надежные и удобные CLI-интерфейсы. Он делает работу с терминалом приятной и эффективной.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2
🤔9🤓5🤨4❤3👍3👌1
Заходим в первый try, сразу же запрыгиваем во второй. Пробуем получить txt[5] —> не можем—> ошибку ловит except.
В except'e выводим число 2.
Далее выходим из внутреннего try-except'a и пытаемся получить txt[3] —> удачно —> на следующей строке выводим 3.
В except не заходим, так как все прошло успешно.
Ответ: 2 3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥4
from tqdm import tqdm
import time
# Имитация долгой операции
for i in tqdm(range(100)):
time.sleep(0.05) # Задержка для имитации работы
from tqdm import tqdm
import os
# Список файлов в директории
directory = "my_directory"
files = os.listdir(directory)
# Обработка файлов с прогресс-баром
for file in tqdm(files, desc="Обработка файлов"):
# Имитация обработки файла
time.sleep(0.1)
- Простота интеграции: Достаточно обернуть ваш код в tqdm(), чтобы добавить прогресс-бар.
- Кастомизация: Возможность настраивать внешний вид прогресс-бара (текст, цвета, символы и т.д.).
- Многозадачность: Поддерживает работу с многопоточными и асинхронными программами.
- Универсальность: Может использоваться с любыми итерируемыми объектами, такими как списки, генераторы или даже файловые потоки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
import joblib
# Исходные данные
data = {
"name": "Alice",
"age": 30,
"skills": ["Python", "Data Science", "Machine Learning"]
}
# Сохраняем данные в файл
joblib.dump(data, 'data.joblib')
print("Данные успешно сохранены!")
# Загружаем данные из файла
loaded_data = joblib.load('data.joblib')
print("Загруженные данные:")
print(loaded_data)
from joblib import Parallel, delayed
import math
# Функция для вычисления квадратного корня
def sqrt(x):
return math.sqrt(x)
# Список чисел
numbers = list(range(1, 21))
# Выполняем вычисления параллельно
results = Parallel(n_jobs=-1)(delayed(sqrt)(num) for num in numbers)
print("Результаты вычислений:")
print(results)
- Простота: Joblib упрощает код и скрывает множество деталей, связанных с многозадачностью.
- Меньше накладных расходов: Для некоторых операций Joblib может быть быстрее, чем использование дефолтных механизмов Python (например, multiprocessing).
- Меньше кода: Joblib позволяет распараллелить вычисления с минимальными усилиями.
Joblib — это мощный инструмент для разработчиков, которым нужно оптимизировать время выполнения программ и эффективно работать с данными. Он помогает сделать ваши программы быстрее и удобнее для повторного использования.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥2
- Читаемость: Разделение кода на модули делает его легче для понимания и чтения.
- Модифицируемость: Обычно модули имеют логические границы между различными задачами. Если в модулях свести к минимуму взаимозависимости, то снижается вероятность того, что модификации одного модуля окажут влияние на другие части программы.
- Тестированиe: Независимые модули проще тестировать, так как их можно проверять изолированно.
- Поддержка: При необходимости изменений можно работать только с нужным модулем, не затрагивая остальную часть программы.
- Повторное использование кода: Функциональность, определённая в одном модуле, может быть легко использована повторно другими приложениями, что избавляет от необходимости дублирования.
# numbers.py (модуль)
def is_even(number):
"""Проверяет, является ли число четным."""
return number % 2 == 0
def square(number):
"""Возвращает квадрат числа."""
return number ** 2
# main.py (основной файл)
import numbers
user_input = int(input("Введите число: "))
if numbers.is_even(user_input):
print(f"{user_input} — четное число.")
else:
print(f"{user_input} — нечетное число.")
print(f"Квадрат числа {user_input} равен {numbers.square(user_input)}.")
Модульное программирование — это ключевой принцип создания качественного программного обеспечения. Он помогает писать чистый, эффективный и легко поддерживаемый код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥3
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍7🔥4🤣3
- Изолирование зависимостей: Каждый проект имеет свои зависимости, и виртуальное окружение помогает избежать конфликтов между ними.
- Упрощение управления: Легко воспроизводить окружение на других компьютерах или передавать его коллегам.
- Чистота системы: Основная система остается чистой, так как все зависимости остаются внутри виртуального окружения.
# Установка модуля venv (если еще не установлено)
python -m venv myenv # Создание виртуального окружения с именем "myenv"
# Активация виртуального окружения
# Для Windows:
myenv\Scripts\activate
# Для macOS/Linux:
source myenv/bin/activate
# Установка зависимостей
pip install requests numpy pandas
# Фиксация зависимостей в файл requirements.txt
pip freeze > requirements.txt
# Установка зависимостей из файла requirements.txt
pip install -r requirements.txt
# Деактивация виртуального окружения
deactivate
Виртуальные окружения — это важный инструмент для каждого разработчика Python. Они помогают поддерживать проекты в порядке и избегать проблем с зависимостями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤5🔥2
Что выдаст код выше❔
Anonymous Quiz
40%
[1] и [2]
45%
[1] и [1,2]
5%
[1,2] и [1,2]
1%
[2] и [2]
9%
Error
👍9🤔4🤨2❤1