python - Python 中的循环和 if 语句

标签 python if-statement for-loop nested logic

我有一个问题,如果外部条件(自动评估)为假,我想从 0 到 1(通过 0.01 的增量)(该位很容易),并在条件为假时停止计数器正确。

条件是两个对象之间是否发生碰撞。我知道这部分工作正常,因为我已经在循环内手动测试了它。但事实证明,如果发生碰撞则停止计数器是很棘手的。我确信我错过了一些非常非常简单的事情。

   def autoHandClose():
   global collisionDeteched # this is set to false but on collision correctly changes to true
   counter = 0 
   for x in range(100):
     if collisionDeteched == False:
        counter = counter + 0.01
        h.setGesture(hand.GESTURE_FIST, closeThumb=True, weight = counter)
     else:
      break

权重参数是从0到1(因此我想从0到1来关闭手的原因)我可以关闭手,但如果检测到碰撞则无法让它停止。此方法被分配给键盘按钮按下。

我猜逻辑是错误的,对吗?

最佳答案

对“collisionDetected”的检查是否在此循环的并行线程上运行?如果不是,您将永远不会退出循环,因为碰撞检测的值永远不会更新。是这样吗?

附注:

您可能希望更改 for 循环,使其看起来更像这样,以使代码更简洁:

for counter in range(0,1,0.01):
   ...

这将减少在循环中设置计数器的需要。

关于python - Python 中的循环和 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599161/

相关文章:

python - 散列 Pandas 数据框中的每个值

for-loop - 批处理,如何执行存储在变量或txt文件中的代码?

for-loop - 我如何通过 Go 中的 for 循环将数字加倍?

python - 手动安装的 Python 2.7 的未知屏幕输出

python - 如何在 Django 中正确使用 UUID id 作为 url 参数?

python - 正则表达式匹配数字零

java - if 语句从未评估为 true

swift - if let 可以在 Swift 3.1 中以逗号分隔吗?

javascript - 将数组中对象的属性与另一个数组进行比较

python - 匿名列表如何在 python 列表理解中工作?