为什么这个while语句无限循环?

2024-04-19 10:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Windows PowerShell中使用Python2.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作为value的输入时,loop()变成一个无限循环。你知道吗

你知道怎么回事吗?你知道吗


Tags: theloopisvaluewindowstopdefnow
3条回答

我确信您实际运行的是循环('6'),而不是循环(6)。你知道吗

变量value(传递给函数中的loop)的结果是一个字符串。您将其与i,一个整数进行比较。在Python2.x中,所有整数都小于所有字符串,因此i < loop始终为真,无论i有多大。你知道吗

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

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

(我还建议不要将函数的参数命名为与函数本身相同的参数;这很混乱。)

你必须把你的raw_input放在int()。你知道吗

替换:

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

日期:

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

或者你可以改变:

while i < loop:

while i < int(loop):

相关问题 更多 >