Python:while循环不会终止

时间:2012-12-17 19:40:42

标签: python loops while-loop

我已经阅读了很多关于while循环的主题,而且我找不到一个能告诉我自己的代码错误。我正在努力学习Python,我编写了这段代码,以满足练习练习33的研究练习#1。我无法弄清楚当我输入原始数据时循环不会终止的原因。

numbers = []

def number_uno(z):
    i = 0
    while i < z:
        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


print "Pick a random number: "
z = raw_input("> ")

number_uno(z)

print "Done"

有什么想法吗?它只是不断向“i”添加1并且不会停止打印。

谢谢, 扎克

1 个答案:

答案 0 :(得分:9)

raw_input返回一个字符串。当你将它传递给你的函数时,你要比较一个整数和一个字符串。请注意,python3.x中不推荐使用此行为。你不能用这种方式将整数与python 3.x中的字符串进行比较。 (它会引发TypeError)。

你可以很容易地解决这个问题:

number_uno(int(z))

应该运行正常。