0

値の反復に関して範囲がどのように機能するかについて、私は混乱しています。

ここで、いきなり問題が発生しました。ラジアンでの正弦対度のコードは次のとおりです。

for angle in range(10):
    y = math.sin(math.radians(angle))
    print(y)

私はこれを完全に理解しています。Python は、0 から 9 までの各度の正弦値を計算します。

私が問題を抱えているのは、このコードです:

def square(x):
    runningtotal = 0
    for counter in range(x):
        runningtotal = runningtotal + x

    return runningtotal

toSquare = 10
squareResult = square(toSquare)

これは単純に、10 を 10 回足して 100 にする 2 乗計算を行うためのコードです。

私が抱えている問題は、正弦コードでは、範囲を通過するときに math.sin が呼び出されると、概念的にそれを見て[0,1,2,3,4,5,6,7,....]、範囲を通過するまで各数値の正しい正弦値を計算することです。

しかし、二乗コードを見ると、range(x)square(ToSquare)と同じですがsquare(10)、概念的には に等しいはず[0,1,2,3,4,5,6,7,8,9]です。しかし、明らかにコードが見ているのは、数字の 10 の 10 回の反復です。

どこで混乱していますか?

4

1 に答える 1

3

最初のコードブロックでは、

for angle in range(10):

そして続けて言います

y = math.sin(math.radians(angle))

変数angleが math.radians の引数として使用されていることに注意してください。

他のコード サンプルでcounterは、​​ は変数ですが、使用されることはありません。値は無視されます。重要なことは、コードが引き続き 10 回の反復を生成することです。

于 2013-06-12T21:32:28.620 に答える