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
Поэтому при первом вызове add_to_list(1) список становится [1], а при втором вызове add_to_list(2) к тому же списку добавляется 2, итог — [1, 2].
Это классическая ловушка с изменяемыми аргументами по умолчанию в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤4🔥4
def bubble_sort(arr):
"""Сортировка пузырьком."""
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
# Пример использования
data = [64, 34, 25, 12, 22, 11, 90]
sorted_data = bubble_sort(data)
print("Отсортированный массив:", sorted_data)
def quick_sort(arr):
"""Быстрая сортировка."""
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
# Пример использования
data = [64, 34, 25, 12, 22, 11, 90]
sorted_data = quick_sort(data)
print("Отсортированный массив:", sorted_data)
- Эффективность: Разные алгоритмы имеют разную сложность (например, O(n²) для пузырьковой сортировки и O(n log n) для быстрой сортировки), что влияет на производительность.
- Практическое применение: Сортировка используется везде: от поиска данных до обработки больших наборов информации.
- Обучение логическому мышлению: Реализация алгоритмов сортировки помогает лучше понимать основы программирования и оптимизации кода.
Алгоритмы сортировки — это важная часть компьютерных наук. Они позволяют эффективно работать с данными и решать сложные задачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3👍2
👍8❤3🤨3🤓1
Поэтому все функции используют i = 2, и результат для любого вызова funcs[n](1) будет 1 + 2 = 3.
Это типичная "ловушка" при работе с замыканиями в циклах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥3
# Генератор для создания бесконечной последовательности чисел
def infinite_sequence():
num = 0
while True:
yield num
num += 1
# Использование генератора
seq = infinite_sequence()
print(next(seq)) # Вывод: 0
print(next(seq)) # Вывод: 1
print(next(seq)) # Вывод: 2
itertools для ленивых вычислений:import itertools
# Создаем бесконечную последовательность четных чисел
even_numbers = itertools.count(0, 2)
# Берем первые 5 элементов из последовательности
first_five = itertools.islice(even_numbers, 5)
print(list(first_five)) # Вывод: [0, 2, 4, 6, 8]
- Экономия памяти: Вместо хранения всех данных в памяти, генераторы создают их по мере необходимости.
- Оптимизация производительности: Нет необходимости выполнять лишние вычисления, если результат не понадобится.
- Обработка больших данных: Ленивые вычисления позволяют работать с огромными наборами данных, которые не помещаются в память.
- Чистый код: Генераторы и ленивые вычисления делают код более читаемым и поддерживаемым.
Ленивые вычисления — это мощный инструмент для оптимизации программ в Python. Они помогают эффективно использовать ресурсы и работать с большими объемами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍3💯3🤔1
import igraph as ig
# Создаем граф
graph = ig.Graph()
# Добавляем вершины
graph.add_vertices(5)
# Добавляем ребра
graph.add_edges([(0, 1), (1, 2), (2, 3), (3, 4), (4, 0)])
# Визуализируем граф
ig.plot(graph, vertex_label=range(graph.vcount()), vertex_color="lightblue", edge_width=2)
import igraph as ig
# Создаем граф
graph = ig.Graph.Tree(10, 2) # Дерево с 10 узлами и ветвлением 2
# Получаем характеристики графа
print("Количество вершин:", graph.vcount()) # Вывод: 10
print("Количество ребер:", graph.ecount()) # Вывод: 9
print("Степень каждой вершины:", graph.degree()) # Вывод: [2, 3, 3, 1, 1, 1, 1, 1, 1, 1]
# Находим диаметр графа
diameter = graph.diameter()
print("Диаметр графа:", diameter)
— Подходит для анализа графов среднего и большого размера
— Делает акцент на производительности и эффективности использования памяти
— Поддерживает направленные и ненаправленные графы, взвешенные графы
— Имеет богатый набор алгоритмов компоновки
— Интегрируется с популярными библиотеками Python для науки о данных, такими как NumPy и Pandas. 3
igraph — это универсальный инструмент для анализа и визуализации графов. Он помогает исследовать сложные сети и находить скрытые закономерности в данных. Он особенно полезен для исследователей и учёных, работающих со сложными сетевыми структурами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥3
- Тензоры: Многомерные массивы, аналогичные массивам NumPy. Они являются основными элементами, с которыми работает TensorFlow.
- Операции: Функции, которые выполняют вычисления над тензорами.
- Переменные: Значения, которые изменяются в процессе обучения модели.
- Граф вычислений: TensorFlow использует графы для представления математических операций. Каждый узел графа представляет операцию, а ребра — данные (тензоры), передающиеся между операциями.
1.Загрузка данных:
TensorFlow позволяет легко загружать и предобрабатывать данные. В примере ниже мы используем набор данных MNIST, который часто используется для обучения систем обработки изображений:
import tensorflow as tf
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
2.Определение модели:
Мы используем API Keras, интегрированный в TensorFlow, для определения нашей нейронной сети:
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
3.Компиляция модели:
Затем мы компилируем модель, указывая оптимизатор, функцию потерь и метрики:
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
4.Обучение модели:
Обучаем модель с использованием обучающих данных:
model.fit(x_train, y_train, epochs=5)
5.Оценка модели:
Наконец, оцениваем модель с использованием тестовых данных:
model.evaluate(x_test, y_test)
TensorFlow в Python — это мощный инструмент для создания моделей машинного обучения. Независимо от того, являетесь ли вы начинающим или опытным разработчиком, обширная экосистема и надежные функции TensorFlow делают его ценным инструментом в вашем арсенале искусственного интеллекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥2