繁体   English   中英

为什么我的代码会陷入无限循环?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM