Как проверить, что программа что-то делает (курсор в ней в виде "часиков")?

Когда в Python программа занимает большое количество времени на выполнение какой-либо операции, вы можете столкнуться с ситуацией, когда курсор программы заменяется на символ "часиков" или "песочных часов". Это указывает на то, что программа находится в состоянии ожидания или выполняет длительную операцию.

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

1. Вывод времени выполнения: Вы можете использовать модуль time для измерения времени выполнения определенного участка кода. Перед выполнением участка кода запомните текущее время, а после его выполнения найдите разницу между текущим временем и временем до выполнения участка. Если разница велика, это означает, что программа занимает много времени на выполнение определенного участка.

Вот пример кода, демонстрирующий этот подход:

import time

start_time = time.time()

# Ваш код

end_time = time.time()

execution_time = end_time - start_time
print("Время выполнения:", execution_time)

2. Вывод промежуточных результатов: Если программа выполняет сложные вычисления или операции над большим объемом данных, можно вставить в код строки вывода промежуточных результатов для того, чтобы определить, на каком этапе программа находится и сколько времени занимает каждый этап. Например:

import time

start_time = time.time()

# Ваш код
print("Задача 1 выполнена.")

# Ваш код
print("Задача 2 выполнена.")

# Ваш код
print("Задача 3 выполнена.")

end_time = time.time()

execution_time = end_time - start_time
print("Время выполнения:", execution_time)

Это позволит вам следить за выполнением каждой отдельной задачи в программе и определить, где наиболее затратное использование времени.

3. Использование инструментов профилирования: Python также предоставляет инструменты профилирования, которые позволяют более подробно анализировать производительность программы. Например, модуль cProfile позволяет вам профилировать код и получать информацию о времени выполнения каждого вызова функции в программе.

Вот пример использования модуля cProfile:

import cProfile

def ваша_функция():
    # Ваш код

cProfile.run('ваша_функция()')

Это выведет подробный отчет о времени выполнения каждой функции в вашем коде.

Используя эти методы, вы сможете проверить, что ваша программа действительно делает что-то и определить, на каких этапах происходит задержка времени.