【问题标题】:Is there a way for a for loop to not go back to the code on top if the next if statement is true?如果下一个 if 语句为真,有没有办法让 for 循环不回到顶部的代码?
【发布时间】:2020-01-26 07:01:02
【问题描述】:
a = 0
b = 0

for x in range (100):
    a = a + 1
    if a == 10:
        b = b + 1

print(a)
print(b)

结果

99
1

我想要什么

10
90

【问题讨论】:

    标签: python python-3.x loops for-loop if-statement


    【解决方案1】:

    IIUC,这应该可以解决问题:

    a = 0
    b = 0
    for x in range (100):
    
        if a < 10:
            a = a + 1
        else:
            b = b + 1
    

    但为了进一步简化,你可以使用python的赋值运算符a += 1语法,它将a的值加1:

    a = 0
    b = 0
    for x in range (100):
    
        if a < 10:
            a += 1
        else:
            b += 1
    

    【讨论】:

      【解决方案2】:

      添加条件检查。

      a = 0
      b = 0
      
      for x in range (100):
          if (a % 10 != 0 or a==0):
              a = a + 1
          else:
              b = b + 1
      
      print(a)
      print(b)
      

      【讨论】:

        【解决方案3】:

        只是为了好玩:

        a, b = 0, 0
        for x in range(100):
            add = a % 10 != 0 or a == 0
            a += add
            b += not add
        

        这使用了 bool 是 int 的事实,尽管我不建议这样做,因为它不太可读

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-24
          • 2020-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-31
          • 1970-01-01
          相关资源
          最近更新 更多