我已经阅读了很多关于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并且不会停止打印。
谢谢, 扎克
答案 0 :(得分:9)
raw_input
返回一个字符串。当你将它传递给你的函数时,你要比较一个整数和一个字符串。请注意,python3.x中不推荐使用此行为。你不能用这种方式将整数与python 3.x中的字符串进行比较。 (它会引发TypeError
)。
你可以很容易地解决这个问题:
number_uno(int(z))
应该运行正常。