在Python中无限循环

时间:2012-09-04 10:18:35

标签: python while-loop infinite-loop

无论我做什么,我都无法在循环工作时得到这个;除非我对该值进行硬编码。

count = 0
value = raw_input('How many?')
print value
while (count <= value):
        print "a"
        count= count + 1

起初我尝试使用命令行参数,使用sys.argv [1]获取值,但我遇到了同样的问题。这看起来很简单,但我不能为我的生活弄清楚我做错了什么。

3 个答案:

答案 0 :(得分:9)

确保该值为整数

while (count <= int(value)):
    count= count + 1

默认情况下,raw_input是一个字符串,对于每个整数n和每个字符串s,我们都有n<s is True(!),因此你的循环(没有int 1}})永不休息。

注意:在Python 3中,比较字符串和整数将给出TypeError: unorderable types: str() < int(),这可能是更“预期”的行为。

答案 1 :(得分:1)

首先将输入转换为整数

value = int(raw_input('How many?'))
print value

答案 2 :(得分:1)

顺便说一下,如果你真的想让你的陈述被value次打印更改条件

count <= int(value)

count < int(value)

或从1

开始count