могли бы вы объяснить мне, почему этот код:Multiple если условия
if (x and y) and z > 0:
return True
не то же самое, как:
if (x and y) > 0 < z:
return True
В принципе, почему не могу я цепь несколько переменных, как:
if var1 and var2 and var3 and var4 > 0:
do_this
Что я делаю неправильно?
--edit-- Я полагаю, я просто хочу знать, как я могу сократить состояние без написания:
if var1 > 0 and var2 > 0 and var3 > 0
особенно если условие является длинным, как:
if var1 > (pow(x, 3)/2.5*pow(y,0.5)+x*y)
Если было бы невозможно переписать условие для каждой переменной, представьте, если бы у меня было 10 таких варов. Или есть лучший способ, который я не вижу, что можно использовать в таких ситуациях? Спасибо за ответы!
Спасибо за объяснение! Есть ли способ сократить выражение? Без переписывания x> 0 и y> 0 и z> 0? Поэтому он проверяет, есть ли каждая указанная переменная> 0? – metabuddy
@metacore нет общего решения для одновременного сравнения нескольких значений. В этом случае, в частности, выражение в последней строке моего ответа является самым простым способом выражения условия –