0

コードは次のとおりです。

count = 0
phrase = "hello, world"
for iteration in range(5):
    while True:
        count += len(phrase)
        break
    print("Iteration " + str(iteration) + "; count is: " + str(count))

私は混乱していますcount += len(phrase)

私はカウントを感じます+= len(phrase)=>count = count + len(phrase)

カウント+= 1すると、次の反復ごとに 1 ずつ増加することは理解できますが、ここでは長さ全体を反復しているため、その背後にあるロジックを取得できませんでした。このコードで実際に何が起こっているのか、行ごとに説明してくれる人がいるかどうかを尋ねます。ありがとう!

4

2 に答える 2

3

あなたの直感+=は正しいです。+=演算子はインプレース加算を意味し、 のような不変値型の場合はintまったく同じですcount = count + len(phrase)

外側のforループは 5 回実行されます。socountは最終的に の長さの 5 倍に設定されphraseます。

while True:ループを完全に削除できます。一度だけ繰り返すループを開始します。最初の繰り返しでループするbreak端。

phraseこのコードのどこにも、値の全長を反復処理するものはありません。長さ (12) のみが照会され、 に追加されるcountため、最終値は 5 かける 12 が 60 に等しくなります。

于 2013-05-05T13:06:54.833 に答える
3
count = 0
phrase = "hello, world"
for iteration in range(5): #iterate 5 times
    while True:
        #count = count + len(phrase)
        count += len(phrase)  # add the length of phrase to current value of count.
        break                 # break out of while loop, while loop 
                              # runs only once for each iteration
    #print the value of current count
    print("Iteration " + str(iteration) + "; count is: " + str(count))

つまり、プログラムは の長さphrasecount5 倍に追加しました。

出力:

Iteration 0; count is: 12   # 0+12
Iteration 1; count is: 24   # 12+12
Iteration 2; count is: 36   # 24+12
Iteration 3; count is: 48   # 36+12
Iteration 4; count is: 60   # 48+12

上記のプログラムは、次とほぼ同等です。

count = 0
phrase = "hello, world"
for iteration in range(5):
    count = count + len(phrase)
    print("Iteration " + str(iteration) + "; count is: " + str(count))
于 2013-05-05T13:07:17.120 に答える