Skip to main content
 首页 » 编程设计

python之在函数中创建的变量是否具有全局范围

2025年05月04日20小虾米

我有一个简单的函数,其中包含一个循环,用于计算金钱每年的利息增长情况,这让我开始思考 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 的原始值,因此出于您的目的 - 使用该变量并直接在循环中更新它就可以了。