私は、計算の答えを推測するようにユーザに指示するコードをいくつか持っていて、それらが正しいかどうか、またはどこが間違っていたのかを特定しようとします。私はこれでwhileループを使用しましたが、時にはスタックしてしまいました。推測にカウンタを追加し、5回の間違った推測の後にwhileループを壊す方法がありますか?whileループのpythonにカウンタを追加する
0
A
答えて
1
一般的に、それは次のようになります。
i = 0
while i < max_guesses:
i+=1
# here is your code
0
をあなただけwrong_guess
カウンタを作成する必要があり、かつwrong_guess
> = 5場合はwhileループを停止します。
wrong_guess = 0
Ac=L*xm
#ask user to work out A (monthly interest * capital)
while wrong_guess < 5:
A= raw_input("What do you think the monthly interest x the amount you are borrowing is? (please use 2 d.p.) £")
A=float(A)
#tell user if they are correct or not
if A==round(Ac,2):
print("correct")
break
elif A==round(L*x,2):
print("incorrect. You have used the APR rate, whic is an annual rate, you should have used this rate divided by 12 to make it monthly")
elif A==round(L/(x*100),2):
print("incorrect. You have used the interest rate as a whole number when you should have used it as a decimal, and divided it by 12 for the monthly rate")
else:
print("Wrong, it seems you have made an error somewhere, you should have done the loan amount multiplied by the monthly rate")
wrong_guess += 1
1
Pythonic方法があります
max_guesses = 5
guessed = False
for wrong_guesses in range(max_guesses):
if A==round(Ac,2):
print("correct")
guessed = True
break
...
else:
print("You have exceeded the maximum of {} guesses".format(max_guesses))
if not guessed:
wrong_guesses += 1
このようにして、ループは多くともmax_guesses
回。 else
ブロックは、break
ステートメント、すなわち正しい推測がないときにループが終了しなかった場合にのみ実行されます。
最後に間違った推測==(その場合はmax_guesses - 1)で終了するため、if not guessed
は最後の誤った推測をカウントすることに注意してください。これは、range
が区間[0、max_guesses](上限を除く)のイテレータであるためです。
1
ただ、間違った推測を保存した状態ならば5 incorrectsが発生した場合、以下に示すloop.Asを停止し、決定するために使用する変数を作成します。
Ac=L*xm
count = 0 #variable to store incorrect guesses
#ask user to work out A (monthly interest * capital)
while True:
if count == 5: #IF COUNT(incorrect) is 5 times
break #stop loop
else: # if not continue normally
A = raw_input("What do you think the monthly interest x the amount you are borrowing is? (please use 2 d.p.) £")
A = float(A)
# tell user if they are correct or not
if A == round(Ac, 2):
print("correct")
break
elif A == round(L * x, 2):
print(
"incorrect. You have used the APR rate, whic is an annual rate, you should have used this rate divided by 12 to make it monthly")
count += 1
elif A == round(L/(x * 100), 2):
print(
"incorrect. You have used the interest rate as a whole number when you should have used it as a decimal, and divided it by 12 for the monthly rate")
count += 1
else:
print(
"Wrong, it seems you have made an error somewhere, you should have done the loan amount multiplied by the monthly rate")
count += 1
関連する問題
- 1. PowerShell - whileループにカウンタを追加する
- 2. PHPのwhileループでカウンタを追加し、私はこのカウンタに達すると
- 3. whileループのPythonカウンタの混乱
- 4. whileループに日付を追加する
- 5. whileループをdidMoveToViewに追加する
- 6. WHILEループにサイクルを追加する
- 7. Whileループを使用してPythonでファイルに追加/追加する
- 8. Javaでのwhileループによる追加
- 9. do/whileループを追加する
- 10. vbaにカウンタを含むループを追加する方法
- 11. whileループをwhileループのpythonに変換する
- 12. Python - forループとカウンタ
- 13. whileループへのif文の追加
- 14. whileループでのチェックインの追加
- 15. Python 3のwhileループwhile
- 16. Python whileループwhileループのメインループ内
- 17. スレッドのスリープとwhileループを使用するjavaの時間カウンタ
- 18. マージソート用の比較カウンタをPythonで追加するには?
- 19. Pythonのカウンタにセットを追加するエレガントな方法
- 20. whileループをwhileループのpythonに置き換える
- 21. SQL:@@ fetch_status = -1の場合にwhileループを追加する方法
- 22. Pythonでwhileループでリストを追加すると問題が発生する
- 23. 年のカウンタをflipclock.jsに追加する
- 24. Pythonスレッドとwhileループwhile
- 25. Python Pokemon Game While Whileループ
- 26. WhileループでPython
- 27. Python - Whileループ
- 28. whileループpython
- 29. リストインデックスwhileループpython
- 30. Python Factorial whileループ
'wrong_guess + = 1 'を書くための必要はありません回答が正しければOPが壊れているので何度も。 – MaLiN2223