私はこの管理された評価をしています。私はちょうど初心者なので、私はあまりPythonについて知らない。最初に値が正しい場合に1回実行されるループを修正する方法。しかし、第1の値が間違っていて、第2の値が正しい場合、永久に実行されます。
# defining qualification
def qualification():
print("\nQualification Level") # informs user what is AP + FQ
print('\n"AP" = Apprentice', '\n"FQ" = Fully-Qulaified')
user_qual = input("Enter your Qualification Level")
# error message if any other data is entered
while user_qual not in ("AP", "FQ"):
print("You have entered one or more data wrong!")
print("Please re-enter Qualification Level!")
qualification()
このコードが実行されるたび、それはwhileループまで良い実行されます。
私はこのコードを持っています。正しい値(つまりAPまたはFQ)を入力してコードを実行すると、whileループは実行されません。しかし、間違った値を最初に入力した場合(FQまたはAPでない値)whileループは実行する必要がありますが、最初に実行した後は間違った値を入力した後に正しい値を入力すると終了しますループはループを停止しません。無限ループが作成されています。
答えを提供してください。私はPythonプログラミングの初心者ですので、解決策が複雑すぎないようにしてください。
あなたの変数は関数ローカル変数 "user_qual"なので、関数への各再帰呼び出しでこの変数は一意です。あなたのコードによれば、この変数は決して変更されません。しかしここでの主な質問は、再帰が必要な理由です。あなたのwhileループで変数を更新するだけで、 "qualification"への呼び出しをuser_qual = input( "あなたの資格レベルを入力")に置き換えてください – Alex