Una variable local se declara en su ámbito de uso (en el programa principal y dentro de una función) y una global fuera de su ámbito para que se pueda utilizar en cualquier función que la declare como global.
# Define función
def acelerar():
# Declara la variable 'km' como global
# Ahora se podrá utilizar dentro de la función
global km
# Declara variable local (ámbito función)
tiempo = 1
# Se incrementa la velocidad en 5 km
km+= 5
# Define variable local (ámbito programa principal)
km = 10
# Muestra variable 'km'
print('Velocidad:', km) # velocidad: 10
# Llama a la función acelerar()
acelerar()
# Muestra variable 'km'
print('Velocidad:', km) # velocidad: 15
# Intenta mostrar la variable 'tiempo'
# Se produce una excepción (error) de tipo NameError
# porque la variable no pertenece a este ámbito:
# NameError: name 'tiempo' is not defined
print('Tiempo:', tiempo)
Relacionado:
Diccionarios de variables locales y globales
Ir al índice del tutorial de Python