虽然循环不按预期工作

时间:2013-06-10 20:52:51

标签: python loops while-loop

我几天前刚刚开始学习Python,我正在学习“学习Python的艰难之路”练习。我一直在搞乱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

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

由于

2 个答案:

答案 0 :(得分:3)

我认为你不需要to

while i < to whilevar: 
          ^^

此外,将whilevar转换为整数:

whilevar = int(raw_input())

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

答案 1 :(得分:2)

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

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

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

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