Почему мой вложенный python l oop застревает / перестает корректировать значения, как запланировано - PullRequest
0 голосов
/ 20 января 2020

Я новичок в python и хочу запрограммировать код, который может сказать мне, как часто значения в списке увеличиваются или уменьшаются на параметр (в данном случае 5), не опускаясь ниже начального значения.

У меня есть большой l oop для получения данных из списка в хронологическом порядке, один l oop для увеличения и еще один l oop для измерения уменьшается. Подсчет для увеличения работает следующим образом: если значение увеличивается, оно запустит подсчет. Подсчет остановится только в том случае, если значение упадет ниже начального значения (сбой) или увеличится на 5 (успех), и если произойдет любое из этих событий, он снова начнет ждать увеличения. Аналогичная идея для уменьшения срабатывает. Я с нетерпением жду, чтобы получить советы от вас!


x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 17, 16, 15, 14, 13, 12, 11, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 29, 28, 27, 28, 27, 26, 25, 24, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11]

a = 0 #loop variables
b = 0 #variable to update value x
c = 5 #Size of increase I want to measure

#Results
Failure = 0
Success = 0


while a < 60:
    Increase = x[b]+1  #if the threshold is x[a], it will never be triggered so I used x[b] to relate to the previous value
    Decrease = x[b]-1
    print ""
    print "Value", x[a]
    print "Increase",Increase #start counting up
    print "Decrease",Decrease #start counting down
    print ""
    if x[a] >= Increase:
        print "Start counting at", x[a]
        while x[a]>= Increase and x[a] <= Increase +c:
            b = a
            print "Value:",x[a]
            if x[a] >= Increase +c:
                print "Success"
                Success += 1
                print "Finish counting at", x[a]
                print ""
            elif x[a] <= x[a-1]-1:
                print "Failure"
                Failure += 1
                print "Finish counting at", x[a]
                print ""
            a +=1
    elif x[a] <= Decrease:
        print "Start counting at", x[a]
        while x[a] <= Decrease and x[a] >=Decrease -c: 
            b = a
            print "Value:", x[a]
            if x[a]<=Decrease -c:
                print "Success"
                Success += 1
                print "Finish counting at", x[a]
                print ""
            if x[a] >= x[a-1]+1:
                print "Failure"
                Failure += 1
                print "Finish counting at", x[a]
                print ""
            a += 1
    b = a
    a += 1

print "RESULTS"
print "Failures:", Failure
print "Success:", Success

...