Funciones
Una función empaqueta un bloque de código reutilizable. Se define con def:
def doble(x):
return x * 2
doble(5) # 10
Los parámetros son los nombres en la definición (x); los argumentos son los valores que pasas al llamarla (5). return devuelve un valor; si no hay return, la función devuelve None.
Un parámetro puede tener un valor por defecto, que se usa si no lo pasas:
def saludar(nombre="amigo"):
print(f"Hola {nombre}")
saludar() # Hola amigo
Regla de orden: los parámetros con valor por defecto deben ir después de los que no lo tienen. def f(a, b=1) es válido; def f(a=1, b) da error de sintaxis.
args recoge argumentos posicionales variables y kwargs los que llevan nombre. Una variable creada dentro de una función es local: solo existe ahí dentro (su ámbito). Una variable global (definida fuera de toda función) se puede leer* desde dentro de cualquier función; para reasignarla dentro necesitás la palabra clave global.