Pythonの優先順位について質問があります。次のコードがあります。
def gcdIter(a, b):
ans = min(a,b)
while ((a%ans is not 0) and (b%ans is not 0)):
ans -= 1
return ans
私の質問は、while 論理ステートメントについてです。式が私が考えていた方法で評価されることを確認するためにいくつかの括弧を追加しましたが、そうではありません。両方の式が true になる前に while ループが中断されています。私は間違っていましたか?
次のように、2 つの式を使用せずに同じことを行う方法を見つけました。
def gcdIter(a, b):
ans = min(a,b)
while ((a%ans + b%ans is not 0)) :
ans -= 1
return ans
しかし、最初のコードが思ったように実行されない理由を知りたいです。