あなたの問題は、rosterInput
にinput
のない結果をroster.append
の結果を保存しているということです。追加はNone
を返します。
代わりに、
rosterInput = input("New member or members: ")
roster.append(rosterInput)
編集を行います。決してメインメニューに行くんの問題を修正するには、しばらく句の外にif節を移動し、とにかく場合は必要ありません。また、rosterInput
はwhile
-loopの間に変更されないので、add()
の後にもう一度rosterInput
を読むべきだと思います。
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
で変異しているためです。
これはループの問題を解決しましたが、0を入力するとmainMenu関数 –
に行くのではなくプログラムを終了します。最初に名前を入れた場合は0に戻り、ループにスタックされます。 –
編集された答え。 – nnnmmm