我有一个关于 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 逻辑语句。我添加了几个括号只是为了确保表达式会按照我的想法进行评估,但不是。在两个表达式都为真之前,while 循环被中断。我错了吗?
我找到了一种不使用两个表达式来做同样事情的方法,在:
def gcdIter(a, b):
ans = min(a,b)
while ((a%ans + b%ans is not 0)) :
ans -= 1
return ans
但我仍然想知道为什么第一个代码没有按照我认为的方式运行。