我有一个简单的函数,其中包含一个循环,该循环计算有利息的货币每年的增长方式,这使我开始思考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”变量,以确保在每次迭代之后,该变量都会被更新。由于这次我没有这样做,因此我假设此变量是全局创建的,因此会自动发生。
我的假设正确吗?谢谢
答案 0 :(得分:4)
如果它是全局的,那么您可以在函数外部访问它。变量的范围仅限于该特定功能。
您还可以在循环上方创建另一个中间变量,但该函数不会对其产生太大变化-您不需要在函数中使用amount
的原始值,因此出于您的目的-使用该变量和直接在循环中更新它就可以了。
答案 1 :(得分:1)
上面的答案已经满足了您的要求,但是我认为以下链接可能对您的学习很有帮助,因为它对我有好处。在Python Tutor中,您可以放置代码并可视化全局范围,函数范围等内发生的情况。希望这对您有所帮助!