-1

几天前我刚刚开始学习 Python,并且正在完成 Learn Python the Hard Way 练习。我一直在搞乱while循环,我不明白为什么这个循环继续循环和循环。它基本上只是一个填充列表然后打印内容的函数。

   from sys import argv

script = argv

print "This script is called %s." % script
print "It allows a list to be populated with a number"
print "Please enter that number:"
whilevar = raw_input()

i = 0 
numbers = []

def list_numbers(i, whilevar):
    while i < to whilevar: 
        print "At the top i is %d" % i 
        numbers.append(i)
        i = i + 1
        print "number present in list now ", numbers

list_numbers(i, whilevar) 

print "The numbers:"

for z in numbers:
    print z

这可能是非常基本的东西,但我只是以某种方式错过了它。

谢谢

4

2 回答 2

3

我认为你不需要to在那里:

while i < to whilevar: 
          ^^

另外,转换whilevar为整数:

whilevar = int(raw_input())

给它一个更好的名字也不会受到伤害。

于 2013-06-10T20:54:33.937 回答
2

while i < whilevar比较i,一个整数,到whilevar,一个字符串。raw_input(即使用户只输入数字,结果也始终是字符串。)

在 Python 2.x 中,整数总是小于字符串。所以你的条件永远是真的,循环永远不会退出。

其他人已经解释了如何解决这个问题:whilevar使用 . 转换为整数int()。(不要使用input())。

我会假设无关to是一个错字,你知道它不应该在那里。

于 2013-06-10T21:29:18.187 回答