0

我在 Windows PowerShell 中使用 Python 2.7。

def loop(loop):
    i = 0
    numbers = []
    while i < loop:
        print "At the top i is %d" % i
        numbers.append(i)

        i += 1
        print "Numbers now: ", numbers
        print "At the bottom i is %d" % i



value = raw_input("Choose the loop value:\n>")
print value
loop(value)

当我6作为输入输入时valueloop()变成一个无限循环。

知道出了什么问题吗?

4

4 回答 4

4

你的结果raw_input,变量value(在你的函数中传递loop)是一个字符串。您正在将此与i整数进行比较。在 Python 2.x 中,所有的整数都小于所有的字符串,所以i < loop不管有多大都是如此i

将您的输入转换为整数以进行比较:

value = int(raw_input("Choose the loop value:\n>"))

(而且我还建议不要将函数的参数命名为与函数本身相同;这只是令人困惑。)

于 2013-08-20T16:32:09.147 回答
1

你必须把你raw_inputint()

代替:

 value = raw_input("Choose the loop value:\n>")

上:

 value = int(raw_input("Choose the loop value:\n>"))

或者你可以改变:

while i < loop:

while i < int(loop):
于 2013-08-20T16:33:25.073 回答
0

我确定您实际上是在运行循环('6')而不是循环(6)。

于 2013-08-20T16:32:16.643 回答
0

因为 value 是一个字符串

你应该这样调用你的函数

loop(int(value))
于 2013-08-20T16:33:17.140 回答