【发布时间】:2021-04-30 02:43:41
【问题描述】:
下面的代码使数组成为函数的输入。这个 2 元素数组是迭代的,如果新的和先前迭代的数组值之间的差异为零(或者它打算这样工作),它将停止。请注意,下面的函数只是一个伪函数。
正在使用适合我想要的“OR”和“AND”运算符。如果有,哪种方法最好用,如果没有,有什么更好的方法?
def func(array):
counter = 0
diff = True
array_i = array
while diff:
array_f = array_i + 1/array_i
diff = abs(array_i[0] - array_f[0]) or abs(array_i[1] - array_f[1]) > 0
array i = array_f
counter += 1
return array_i, counter
【问题讨论】:
-
x or y > 0不像你想象的那样工作 -
@Aaron 正如我所怀疑的那样。请详细说明原因?
-
每种语言都实现了一种运算顺序,而且大部分都非常相似,所以这种东西还是比较通用的。类似于赋值运算符的比较运算符具有非常低的优先级(最后计算),以使比较计算结果的典型情况通常需要更少的括号。
-
是的,这可行,我不知道官方文档中对运算符优先级的很好解释,但here's 是一个非常简单的布局。编辑... nvm 它只是在official docs上一个超级冗长的页面的末尾
-
问题不是优先级。逻辑连接词不会像英语那样自动分布。 “球是绿还是红”相当于“球是绿还是球是红”,人类听众都知道这一点。这不是编程语言的工作方式。
标签: python while-loop operation convergence