b:
если a истина - то по умолчанию выражение b не вычисляется, как принудить?) ну кроме того что бы вынести до if.
А зачем?
это не ленивые вычисления в операторе if, а так работают логические операторы в питоне or и and в if это выражение используешь или где-либо еще не имеет значения.
чисто из спортивного интереса)
предварительно вычислить a и b.
Есть законы Моргана, тебе туды
это понятно, другие варианты? по моему в 3.8 или где то в последних версиях было что то типа оператора присваивания := который предварительно осуществлял вычисление...
По-моему если ты пишешь if a or b, то оно автоматически "лениво" вычисляется
>>> if True or (a := 5): ... print(a) ... Traceback (most recent call last): File "<stdin>", line 2, in <module> NameError: name 'a' is not defined
значит я не прав.
Обсуждают сегодня