即使输入0,我也无法阻止它回到rosterInput。 (它在ide中的格式正确,但由于某些原因,我似乎无法在此处正确使用。)此外,这是否会将用户的多个输入正确存储在列表中,以后我可以在不同的函数中打印?
def add():
#adding team members...
global roster
roster = []
rosterInput = roster.append(input("New member or members: "))
while rosterInput != "0":
add()
if rosterInput == "0":
mainMenu()
答案 0 :(得分:1)
您的问题是,您将roster.append
的结果保存到rosterInput
,而不是input
的结果。追加返回None
。
相反,做
rosterInput = input("New member or members: ")
roster.append(rosterInput)
编辑:要纠正永不进入主菜单的问题,请将if子句移到while子句之外,并且不需要if。此外,rosterInput
循环期间while
永远不会发生变化,因此我认为您应该在rosterInput
之后再次阅读add()
。总之,要迭代地执行:
rosterInput = input("New member or members: ")
while rosterInput != "0":
roster.append(rosterInput)
rosterInput = input("New member or members: ")
mainMenu()
递归地做,这可能更接近你原来的表述:
roster = []
def add():
# adding team members...
rosterInput = input("New member or members: ")
if rosterInput != "0":
roster.append(rosterInput)
add()
else:
mainMenu()
使用函数外部的空列表初始化名单,以便每次都不会覆盖它。你不需要这里的global
声明,因为你没有重新分配名册,只是用append
变异。