我意识到这个问题可能会重复here和here,我似乎无法理解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输出,谢谢。
答案 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