2016-10-25 24 views
0

我想创建一个函数,它需要一个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 
+0

的Python的什么版本?你也试图在创建它们之前比较变量.... – MooingRawr

+0

'addNum'定义在哪里? –

+0

定义了myInt? –

回答

1

这真的是什么iter是,这可能需要作为第一个参数的函数,它没有参数和返回值,并为其第二个参数一个前哨值,告诉何时停止

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

sentinal = input("Enter your sentinal:") 
print(list(iter(get_int,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 
+0

当我尝试通过def main调用它时运行它。我得到一个错误, 高清的main(): 文件 “hw6.py” 37行,在: createIntList() 的main() 我得到这样 回溯(最近通话最后一个)错误 主() 文件 “hw6.py”,线35,在主 createIntList() 文件 “hw6.py”,第22行,在createIntList addNum =输入( “请输入一个数字,” 敏, “停止:”) TypeError:最多输入1个参数,得到3 –

+0

这就是说您输入错误了......输入不像打印,您只需用逗号连接字符串......参见我的编辑我改变了你的代码来解决这个错误也....这个类可能真的很难你你应该参考Python输入文档' –

相关问题