При отладке в pycharm, как отлаживать только через определенную итерацию цикла for? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть цикл for в Python в Pycharm IDE.У меня есть 20 итераций цикла for.Однако, похоже, ошибка исходит из набора данных, зацикленного во время 18-й итерации.Можно ли пропустить первые 17 значений цикла for и перейти исключительно к отладке 18-й итерации?

В настоящее время я проходил все 17 итераций, чтобы достичь 18-й.Логика, заключенная в цикле for, довольно сложна и длинна.Следовательно, каждый цикл отладки в каждой итерации занимает очень много времени.

Есть ли какой-нибудь способ перейти к нужной итерации в Pycharm, не углубляясь в глубокую отладку предыдущих итераций?

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Возможно, вы могли бы сделать что-то вроде этого:

for x in range(20):
    if x == 17:
        print 'hello'
    ... do stuff ...

Затем в PyCharm отметьте линию print как точку останова.

0 голосов
/ 19 февраля 2019

Точка останова может иметь условие.Когда условие оценивается как True, отладчик останавливается, иначе его пропускают.См. документацию .

0 голосов
/ 18 февраля 2019

Учитывая код:

for i in range(20):
    x = i

Для отладки такого рода вещей я склонен исправлять код следующим образом:

my_debug_loop_count = 0
for i in range(20):
    x = i
    my_debug_loop_count += 1
    if my_debug_loop_count == 17:
        xyzzy = 0

Затем установить точку останова на:

xyzzy = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...