[英]Why is my code running into an infinite loop?
我是学习Python的新手。 我在弄清楚为什么我的代码运行到无限循环时遇到了麻烦。
我只是想使用while循环打印数字,并使用函数调用while循环。 我感谢您的帮助!
这是代码:
numbers = []
def check_num(i, end_num):
while i < end_num:
print "At the top i is %d" % i
numbers.append(i)
i = i + 1
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
k = raw_input(">")
check_num(0, k)
print "The numbers: "
print check_num
for num in numbers:
print num
raw_input
给您一个字符串。
更改:
k = raw_input(">")
成:
k = int(raw_input(">"))
因为在Python 2中,您可以比较字符串和数字:
>>> 2 < '1'
True
幸运的是,这在Python 3中不起作用:
>>> 2 < '1'
...
TypeError: unorderable types: int() < str()
因此,在您的情况下, end_num
是一个字符串。 因此,无论整数i
的值是多少, i < end_num
始终为真。 因此,您的循环:
while i < end_num:
永远不会终止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.