#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())