我有一个简单的函数,其中包含一个循环,用于计算金钱每年的利息增长情况,这让我开始思考 Python 中的作用域和变量。
def invest(amount, rate, years):
for i in range(years):
amount = amount + amount*rate
print(f"year {i+1}: ${amount:.2f}")
invest(100, 0.05, 4)
输出:
year 1: $105.00
year 2: $110.25
year 3: $115.76
year 4: $121.55
我知道它有效,但通常我会在 for 循环上方创建“数量”变量,以确保在每次迭代后,该变量都会得到更新。因为这次我没有这样做,所以我假设这个变量是全局创建的,所以它会自动发生。
我的假设是否正确?谢谢
请您参考如下方法:
如果它是全局的,那么您就可以在函数外访问它。变量的范围仅限于该特定功能。
您还可以在循环上方创建另一个中间变量,但它不会对函数有太大改变 - 您不需要在函数中使用 amount 的原始值,因此出于您的目的 - 使用该变量并直接在循环中更新它就可以了。
