在嵌套(while)循环中将变量放在何处?

时间:2017-06-20 15:23:31

标签: python

我意识到这个问题可能会重复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输出,谢谢。

4 个答案:

答案 0 :(得分:2)

看起来这就是你要求的:

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

while b < a:
    b+=1
    print b

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

答案 1 :(得分:1)

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

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

希望它有所帮助! 干杯!

答案 2 :(得分:1)

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

所以你需要这样做:

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

答案 3 :(得分:0)

您的原始示例打印:

3
4
5

明确的规范需要明确的代码。 在检查条件时的代码中,var b为4,然后它会递增并执行打印功能,而不检查您具有规范的标准。

您想要使用条件,即b&lt; a再次打印功能。

e.g。

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