传递用户输入后循环不打印

时间:2015-09-08 12:37:41

标签: python function arguments

我刚开始使用python。当我呼唤我的功能时,我遇到了问题。当我传入用户输入时,它不会打印出来。如果我在loopit()中定义一个数字,那么该函数将打印出来。

计划:

def loopit(i): 
    numbers=[]
    while i < 6: 
        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 
        print "The numbers :"
    for num in numbers: 
        print num 

print "Please input a number"
loopit(raw_input(">  "))

输入: 2

期望的输出:

At the top i is 2
Numbers now: [2]
At the bottom i is 3
The numbers :
At the top i is 3
Numbers now: [2, 3]
At the bottom i is 4
The numbers :
At the top i is 4
Numbers now: [2, 3, 4]
At the bottom i is 5
The numbers :
At the top i is 5
Numbers now: [2, 3, 4, 5]
At the bottom i is 6
The numbers :
2
3
4
5

实际输出:

####-Air:Lpthw #####$ python ex33.py
Please input a number
>  2
#####-Air:Lpthw ####$ 

所以在将用户输入插入循环后,我没有得到我正在寻找的打印输出。但是,当循环中没有参数和定义的变量时,输出会正确打印出来。

我不知道如何解决这个问题,我可能错过了一些东西,请帮忙:)。

非常感谢!

1 个答案:

答案 0 :(得分:1)

def loopit(i):中,您使用i作为int

loopit(raw_input("> "))将输入转换为string。你应该做转换。

试试这个

loopit(int(raw_input(">  ")))

def loopit(i): 
    numbers=[]
    i = int(i)
    while i < 6: 
        print "At the top i is %d" % i 
    .....