【问题标题】:Where to place variable in nested (while) loop?在嵌套(while)循环中放置变量的位置?
【发布时间】:2017-06-20 15:23:31
【问题描述】:

我意识到这个问题可能重复herehere,我似乎无法理解 while 循环读取变量的基本原理,以及在更新所述变量时,为什么它不再指更新变量。

我想查询一个数字,如果隐藏数字b小于输入,加1并打印结果,直到b不再小于输入。

在这个例子中,如果输入数字是5,我希望输出是

3
4
5

我知道这可以通过for 循环来完成,但是当我不知道需要迭代多少次时,我想以更复杂的方式在b 上进行迭代。我也尝试将if 用作while,并得到类似(非)结果。提前致谢。

a=raw_input("Input number: ")
b=2
while True:
    if b<a:
        b+=1
        print b
    else:
        break

编辑:错过了 5 输出,谢谢。

【问题讨论】:

  • 看起来您正在输入一个字符串并将其视为一个数字。也许您应该尝试使用a = int(raw_input("Input number:"))
  • @kehlwood 亲爱的上帝。好吧,我是个白痴。我来自 Matlab 和 R 背景。总是忘记类型。谢谢!

标签: python


【解决方案1】:

看起来这就是你要的:

a=int(raw_input("Input number: "))
b=2

while b < a:
    b+=1
    print b

ETA:执行嵌套代码后将检查“while”循环的条件。在这种情况下,当 'b' 为 4 时,将向 'b' 添加 1 并打印该值,但循环不会重新开始,因为 'b' 不再小于 'a'。

【讨论】:

    【解决方案2】:

    您的代码应该以这种形式工作,但原始输入函数返回的是字符串而不是数字...

    所以你需要这样做:

    a=int(raw_input("Input number:"))
    

    【讨论】:

      【解决方案3】:
      a=int(raw_input("Input number: "))
      b=3
      while True:
          if b<a:
              print b
              b+=1
          else:
              break
      

      你的代码很好!您只需要在 if 语句中交换打印和增量即可,以便变量仅在打印它所在的数字后才增加。在这个版本中,您需要以 b 等于 3 来启动程序!

      希望对您有所帮助! 干杯!

      【讨论】:

        【解决方案4】:

        您的原始示例打印:

        3
        4
        5
        

        显式规范需要显式代码。 在检查条件时,在您的代码中,var b 为 4,然后它会递增并执行打印功能,而不检查您指定的条件。

        您想再次使用条件,即 b

        例如

        a=int(raw_input("Input number:"))
        b=2
        while True:
            if b < a:
                b += 1
            if b < a: 
                print b 
            else:
                break
        

        FWIW,这个 hack 让我们对零索引有了一点了解

        a=int(raw_input("Input number:"))
        b=2
        while True:
            if b+1 <a:
                print b+1
            else:
                break
            b += 1
        

        【讨论】:

          猜你喜欢
          • 2023-03-21
          • 2018-02-26
          • 1970-01-01
          • 2023-03-14
          • 1970-01-01
          • 1970-01-01
          • 2014-03-02
          • 2020-02-03
          • 2020-04-03
          相关资源
          最近更新 更多