我正在尝试创建一个接收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
答案 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