ここでsozを開始してください。私は数字を入力することによっていくつかのオプション(def logged()
:)を持つメニューを作ろうとしてきました。そして、それはその機能に目的を持ってジャンプします。しかし、私は指定された関数をwhileループに入れたifステートメントで呼び出すことはできません。代わりに、ログされた関数がwhileループを永続的に実行し続けることになっている場合は、menu()
関数に戻ります。Python:whileループ中に関数を呼び出すことができません
logged()
のメニューに対応する番号を入力すると、その特定の機能が呼び出されるはずですが、最初のメニューに戻るだけです。私はちょうど前後にジャンプすることなく、2つのメニューが永遠にループするように見えることはできません。どのようにして正確に2つのwhileループを永遠に別々にループさせ、お互いにループさせないのですか?
def menu():
mode = input("""Choose options:\n
a) Test1 Calls logged() function
b) Test2
Enter the letter to select mode\n
> """)
return mode
def test1():
print("Test1")
logged()
def test2():
print("Test2")
def logged(): #Logged menu is supposed to run through a while loop and not break out when reached.
print("----------------------------------------------------------------------\n")
print("Welcome user. ")
modea = input("""Below are the options you can choose:\n
1) Function1
2) Function2
3) Function3
4) Exit
\n
Enter the corresponding number
> """).strip()
return modea
def funct1(): #EXAMPLE FUNCTIONS
print("Welcome to funct1")
def funct2():
print("Welcome to funct2")
def funct3():
print("Welcome to funct3")
#Main routine
validintro = True
while validintro:
name = input("Hello user, what is your name?: ")
if len(name) < 1:
print("Please enter a name: ")
elif len(name) > 30:
print("Please enter a name no more than 30 characters: ")
else:
validintro = False
print("Welcome to the test program {}.".format(name))
#The main routine
while True:
chosen_option = menu() #a custom variable is created that puts the menu function into the while loop
if chosen_option in ["a", "A"]:
test1()
if chosen_option in ["b", "B"]:
test2()
else:
print("""That was not a valid option, please try again:\n """)
while True:
option = logged()
if option == "1":
funct1()
elif option == "2":
funct2()
elif option == "3":
funct3()
elif option == "4":
break
else:
print("That was not a valid option, please try again: ")
print("Goodbye")
原則として、コードを含まない回答は投稿しないでください。何らかの理由でリンクがなくなると、あなたの答えは無益になります。まだrepl.itにリンクすることはできますが、ここでコードをコピーしてください。 – Tomalak
@Tomalak私は良い友達を得ます。 –