创建一个生成整数列表的函数

时间:2016-10-25 17:49:52

标签: python

我正在尝试创建一个接收sentinel值(整数)的函数,并返回一个整数列表。该功能提示用户使用提供的sentinel值作为用户输入的数字来创建整数列表 退出列表的创建。对于答案,请尽可能简单地避免使用任何过于先进的技术,因为我仍然在学习Python并且不想跳得太远......

def createIntList():
    createlist = []
    while myInt != addNum: #having problems around here!!
        myInt = input("What do you want the sentinel to be?")
        addNum = input("Please enter a number, ", myInt, "to stop: ")
    createlist.append(addNum)
    return createlist

1 个答案:

答案 0 :(得分:1)

这实际上是iter的用途,它可以将一个不带参数的函数作为其第一个参数并返回一个值,而对于它的第二个参数,一个sentinal值告诉它何时停止

def get_int(prompt="Enter a number:"): 
    return input(prompt)

sentinal = input("Enter your sentinal:")
print( list(iter(get_int,sentinal)) )

或者你可以编写一个接受数据的方法,直到你的sentinal到达......

def input_until(prompt,sentinal):
   a = []
   while True:
       tmp = input(prompt)
       if tmp == sentinal: return a
       a.append(tmp)

您可以对现有代码进行的最小更改是

def createIntList():
    createlist = []
    #define both variables before your loop
    myInt = input("What do you want the sentinel to be?")
    addNum = None
    while myInt != addNum: #having problems around here!!
        #dont ask each time for a new sentinal...
        addNum = input("Please enter a number, "+ str(myInt)+ " to stop: ")
        createlist.append(addNum) # append your values inside the list...
    return createlist