Обновление логического значения неравенства без необходимости его перезаписи

#python #boolean #inequality

Вопрос:

У меня есть этот простой фрагмент кода:

 a,b = 1,3
cond = b>a
for i in range(3):
    a =1
    print("a:",a,"b:",b,"cond:",cond)
 

В результате получается:

 a: 2 b: 3 cond: True
a: 3 b: 3 cond: True
a: 4 b: 3 cond: True
 

Но мы видим, что на последней итерации cond должен быть Ложным. Есть ли способ обновить логическое значение, основанное на неравенстве между переменными, без необходимости переписывать его на каждой итерации?

Комментарии:

1. почему это должно быть ложью? cond никогда не обновляется, так почему вы ожидаете, что его значение изменится?

2. Присвоение переменной вычисляет выражение в этой точке . Это не то же самое, что поместить формулу в ячейку электронной таблицы.

Ответ №1:

Создайте cond функцию и вызовите ее для оценки состояния.

 a, b = 1, 3

def cond():
    return b > a

for _ in range(3):
    a  = 1
    print("a:",a,"b:",b,"cond:",cond())