【问题标题】:If statement returning False in While True loop (Python)If 语句在 While True 循环中返回 False (Python)
【发布时间】:2020-08-08 18:55:46
【问题描述】:

我希望在这个 If 语句中,变量 'i' 会递增,直到它最终等于 10,随后 'if 10

i=0
while True:
    if i < 10:
        i = i + 1 
        print(i)

【问题讨论】:

    标签: python if-statement printing while-loop break


    【解决方案1】:

    我认为您需要在这里了解一些事情,因为您设置了while True,这意味着语句永远不会得到false,因此即使if condition 失败,while loop 也永远不会结束。所以while loop 将继续运行直到你中断。

    您可以在不中断的情况下实现此目的的唯一方法是这样,您有一个变量,当if loop 失败时,该变量会将while loop 的条件重置为false

    i=0
    condition = True
    while condition:
        if i<10:
            i=i+1
            print(i)
        else:
            condition=False
    

    【讨论】:

      【解决方案2】:

      while XX 等于True 时重复,所以在while True 中总是True。它只与break 语句中断。 在您的代码中,您只需检查 while 循环内的值,如果这样,您既不会中断 while 循环,也不会将 while True 中的 True 更改为 False

      如果你想使用while:

      i = 0
      while i < 10:
          i += 1
          print(i)
      

      或者

      i = 0
      while True:
          if i < 10:
              i += 1
              print(i)
          else:
              break
      

      没有while

      for i in range(10):
          print(i)
      

      【讨论】:

      • 谢谢。这解释了我的逻辑错误。非常感谢。
      【解决方案3】:

      如果你想使用 while True 那么你可以选择:

      i=0
      while True:
         i = i + 1 
         print(i)
         if i == 10:
            break
      

      【讨论】:

        【解决方案4】:

        while True 将使循环永远运行,因为“真”总是评估为真。您可以通过 break 退出循环。

        为了实现你想要做的,我会使用

        while i < 10:
            print (i)
            i++
        

        【讨论】:

        • 是的,我的理解显然有误。我原以为:while True: False ...打破了 while 循环
        【解决方案5】:

        那是因为没有任何东西告诉你终止循环。所以即使在 if 语句不满足之后它也会继续。

        这就是为什么使用while True 通常不是一个好习惯的原因

        当循环中内置了 break 条件时,您可以使用 for 循环实现相同的目的:

        for i in range(0, 10):
            print(i)
        

        【讨论】:

          猜你喜欢
          • 2017-08-10
          • 2021-04-15
          • 1970-01-01
          • 2016-10-30
          • 1970-01-01
          • 2015-05-19
          • 1970-01-01
          • 2013-06-07
          • 2015-12-16
          相关资源
          最近更新 更多