0
# Finicky Counter
# Demonstrates the break and continue statements

count = 0
while True:
  count += 1
  # end loop if count greater than 10
  if count > 10:
   break
  # skip 5
  if count == 5:
    continue
  print(count)

input("\n\nPress the enter key to exit.")

この状況で while True ループが count に適用されるのはなぜですか? ブール値がカウントの結果を測定している理由がわかりません。正しい構文は次のとおりではないでしょうか。

while count:

これを明確にする助けをいただければ幸いです。

4

3 に答える 3

0

countは 0 であるためwhile count、ブール値のコンテキストでは 0 は False であるため、ループに入ることさえありません。

repeat ... until (condition)Python には、他のいくつかの言語に見られるような構造がありません。したがって、ループを常に開始し、条件が true になったときにのみ終了する場合は、条件を just に設定するのが通常の方法です。これはTrue明らかに常に true であり、ループ内で条件を明示的にテストします。を使用して分割しbreakます。

あなたのコメントに答えるために、ここで正しいのは単純に value ですTrue。私が言うように、これは常に当てはまります。

于 2013-09-19T20:35:59.720 に答える
0

デバッガーでコードを段階的にたどると役立ちます (これを可能にする単純なアイデアは PyScripter です)。

いくつかのコメント:

  • while True無限ループです。breakorreturnステートメントによってのみ残すことができます。
  • したがって、条件が満たされるまでループが実行されますcount > 10。ブレークによってループが終了し、次のコマンド ( input ...) が実行されます。
  • ifは、次のステートメントを実行せずにすぐにループの先頭にジャンプするように python に指示count == 5します (したがって、「5」は出力されません)。continue

ただし: デバッガーでコードをたどってください!

于 2013-09-19T20:36:59.660 に答える
0

while ループの構文は「while条件」です。while ループの下のブロックは、条件が False と評価されるか、break コマンドが実行されるまで実行されます。「while True」は、条件が常に True であり、ブレークが実行されない限りループが停止しないことを意味します。Python にはdo while ループがないため、Python で頻繁に使用されるイディオムです。

于 2013-09-19T20:37:11.873 に答える