Как уже указывалось в другом ответе, простой переключатель может быть реализован с помощью bool
, а затем кода, который переключает его каждый раз, когда что-то происходит:
thing = False
:
if happens(something):
thing = not thing
Это нормально для переключения между двумя состояниями. Более общий подход, который позволяет использовать больше состояний, заключается в использовании переменной numeri c и оператора по модулю:
times = 0
maxtimes = 12
:
if happens(something):
times += 1
if times % maxtimes == 1:
print("ding dong")
Вместо этого можно сравнить модуль по модулю с 0, если вы хотите печатать 12, 24 числа. et c итераций вместо первой, 13-й, et c или, конечно, любого другого смещения в течение периода, если это то, что вы хотите.
Еще один полезный трюк - переключение между нулем и какое-то другое значение.
value = 0
othervalue = 1234
:
if happens(something):
value = othervalue - value
Конечно, вы можете переключаться между любыми двумя значениями; вычтите текущее значение из их суммы, чтобы получить другое.
Само собой разумеется, просто переключение или флип-флоп само по себе не очень полезно; вы, вероятно, также добавите некоторые (прямо или косвенно) видимые пользователю действия внутри блока if happens(something):
.