0

我对范围在迭代值方面的工作方式感到困惑。

这是我突然遇到问题的地方。这是以弧度表示的正弦 v. 度数的代码:

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 得出平方计算的代码。

我遇到的问题是,在正弦代码中,当 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 回答