بسم الله الرحمن الرحیم
سلام
اگه متغیری رو تعریف کنید و پس از اون همان متغیر رو در تابعی تغییر مقدار بدید، اون متغیر صرفا در تابعی که تعریف کردید تغییر می کنه و بیرون از تابع به مقدار اولیه خودش مونده.
age = 20 def increase(): age = 50 print(age) # 20 increase() print(age) # 20
اما اگه وقتی در درون تابع هستید و می خواید که تغییری که در تابع برای متغیر ایجاد می کنید در همه برنامه اثر گذار باشه، می تونید از کلمه کلیدی global استفاده کنید
age = 20 def increase(): global age age = 50 print(age) # 20 increase() print(age) # 50
اگر متغیری رو برای اولین بار درون یک تابع تعریف کنید، بیرون از تابع به اون دسترسی ندارید
def increase(): age = 50 print(age) # error
اما اگه قبل از تعریف متغیر در تابع، از global استفاده کنید، بیرون از تابع به اون متغیر دسترسی دارید
def increase(): global age age = 20 print(age) # 20