当前位置: 首页 > 知识库问答 >
问题:

while循环中的多个条件以及在满足条件时查找索引

华恩
2023-03-14

我需要两种while循环的帮助。

while playerA < 10 or playerB < 10 and abs(playerA-playerB) < 3:
list = [4,1,6,3,6,5,2]
threshold = 10

共有1个答案

越景天
2023-03-14

1)括号帮助但while循环时,布尔逻辑可能会让人混淆。最好的方法是将其分成几个部分。要使循环停止,在以下情况下,两边必须都是false,因此一个播放器必须超过10且差值必须大于3。如果您仍然有问题,您可以在该循环中执行If,因为至少逻辑不是反向的。

while (playerA < 10 and playerB < 10) or abs(playerA-playerB) < 3:

另一个选择(可能对您有帮助)是打破检查逻辑,这样事情就不会倒退:

def can_continue(playerA, playerB):
    if (playerA > 10 or playerB > 10) and abs(playerA - playerB) >= 3:
        return False
    return True

然后执行:

while can_continue(playerA, playerB):

2)环路可能有点棘手,但您只需短路即可。

my_list = [4,1,6,3,6,5,2] # list wasn't a good variable name.
threshold = 10
score_sum = 0
for index, ele in enumerate(my_list):
    if score_sum + ele > threshold:
        break
    score_sum += ele
print(score_sum) # 5
print(index) # We stopped at index 2
print(my_list[:index]) # We can splice with that index [4, 1]
 类似资料:
  • 问题内容: 我试图通过一次添加一天来遍历while循环,但它甚至第一次都不会访问while循环。while循环中的条件正确吗?当我测试它时,它仅在一种情况下起作用,但在我添加第二种条件时停止了。 问题答案: 它应该是

  • 当我像这样做一个常规的while循环时 它打印 但第二个while循环在满足条件后再次运行。 所以结果是 “佛罗多是一个很好的霍比特人的名字”难道它不应该停止印刷吗 我设置了x的条件 编辑:哦,我现在明白了,哈哈,我想增量是在代码的末尾,开始是0

  • 我正在尝试使用一个do while循环来找出用户是想将一只狗还是一只猫检查到Java的养狗系统中。其思想是,当提示时输入“dog”或“cat”,任何输入都将导致错误,并且他们将再次被提示输入文件名。 如果输入了“cat”或“dog”,那么将为程序分配等效的文件(dogs.txt或cats.txt),然后系统将运行并将数据加载到程序中。 以下是当前的变量: 以及导致问题的方法: 下面是运行代码时打印

  • 我有一个项目,我的方法得到两个日期,它不断地向方法添加一天,直到两个日期相等,然后您可以通过查看一天添加了多少次来查看日期相距有多远。我的问题是,当满足日条件时,即使日、月和年必须都相同才能停止工作,我的while循环也会退出

  • 问题内容: 我将不胜感激创建此查询的任何帮助。我尝试了好几种方法,但都没有碰到运气。由于我的问题很难表达,因此我将举一个我想做的简单例子。我的数据在结构上类似于以下内容: 如果我有两种特定颜色的ID,我想创建一个查询以返回类型。例如,我想查找所有具有蓝色和红色的ID。然后查询将返回: A和B的返回顺序并不重要。数据集很大,我希望有许多ID可以同时满足这两个条件(也许是50,000个左右)。我要指出

  • 我希望当用户的输入是非整数值、小于1的整数值或大于3的整数值时执行time循环。一旦输入有效,我将使用它。但是,循环仅在用户输入非整数值时起作用。我已经检查了逻辑,我仍然不确定出了什么问题。 代码: