Hola a todos. Hoy vamos a hablar de las variables locales. Las variables locales son aquellas que definimos en el cuerpo de las funciones y se diferencian de las variables que definimos fuera de cualquier función, es decir, en lo que llamamos el programa principal. Veamos un ejemplo: la variable "área base" es una variable local, mientras que "radio base" y "altura" son parámetros. Al comienzo les dije que las variables locales son diferentes y la razón es que si intentamos usarlas fuera de su función se produce un error, porque como su nombre lo indica son locales, es decir, solo existen en la función donde se definen; por eso, en la línea nueve la variable "área base" aparece subrayada en amarillo porque no existe, dado que esa línea no hace parte de la función volumen cilindro y el error que se produce es "name error", "name area base is not define". Por lo mismo, dos funciones distintas pueden tener variables locales con el mismo nombre porque son distintas, como es el caso de área base en las funciones volumen cilindro y volumen paralelepípedo, y no habrá ningún inconveniente en la ejecución. Adicionalmente, cuando se modifica el valor de un parámetro al terminar la función el argumento tiene el valor original, es decir, tenemos parámetros por valor. Veamos el ejemplo: en la línea seis vemos que la variable A se le asigna el valor seis y en la línea siete a la variable B se le asigna el resultado de la función incrementar, cuyo argumento es A. Luego de haber ejecutado la función, imprimimos los valores de las variables A y B y son uno y dos respectivamente. ¿Qué es lo interesante? Que aunque A se paso como argumento a la función incrementar y en efecto se le sumo uno a su valor dentro de la función, el valor de A por fuera de la función no cambia. A continuación vamos a hablar de los errores más comunes que se cometen al utilizar variables locales y para esto utilizaremos un problema interesante. El problema que tenemos que resolver es encontrar el área de la región negra. Muy bien, vayamos por pasos, primero le vamos a pedir al usuario el lado del cuadrado, luego vamos a calcular el área del cuadrado y posteriormente el área del círculo, luego podamos calcular la diferencia y listo, resuelto el problema. Recordemos que podemos llamar funciones dentro de otras funciones, lo que hemos denominado la técnica de dividir y conquistar. Entonces, podemos definir las funciones calcular área cuadrado y calcular área círculo y en una tercera función calcular diferencia, las invocamos y retornamos su resta. También, tenemos el programa principal donde le pedimos al usuario el lado del cuadrado, que es la única información que requerimos porque con ésta podemos saber el radio del círculo, que es lo que necesitamos para calcular su área. Luego, invocamos a la función calcular diferencia y obtenemos como resultado el área de la región negra. Pero por ahora voy a ir modificando líneas de código con errores para que los analicemos y lo más importante, no lo repitamos. Para empezar, ¿cuál es el error en este código? El error está en que en la línea 22 invocamos la función sin argumentos, noten que ni siquiera tenemos los paréntesis. Además, en la línea 21 la invocamos correctamente, pero no guardamos lo que devuelve la función, así que ese valor se pierde. Ahora concentrémonos en este código, ¿cuál es el error? Fíjense en las líneas 21 y 22, estamos asignando a las variables X y Y el resultado de la función "print", pero la función "print" no retorna nada, por lo tanto, no hay resultado que asignar y las variables X y Y no tienen valores, por eso el error nos habla de "none type". Ahora, veamos este otro código, nuevamente la misma pregunta, ¿cuál es el error? En esta oportunidad, el triángulo amarillo que aparece al inicio de la línea 17 nos da información sobre dónde buscar el error. También, vemos una línea amarilla que subraya "radio" y en efecto, ahí está el error. Radio es un parámetro de la función calcular área círculo y por lo tanto sólo se puede usar dentro de la función, fuera de ésta no está definido. Ahora veamos a éste, ¿cuál es el error? Nuevamente el triángulo de alerta [inaudible] nos da una idea de dónde buscar. ÁreaCua y ÁreaCir son variables locales y solo existen en sus respectivas funciones, en el programa principal no existe. Analicemos un último error, primero identifiquemos, ¿cuál es? Es un error similar a uno del que ya habíamos hablado, lados parámetro en este caso de dos funciones, pero igual no existe en el programa principal y como hemos hablado bastante de errores típicos, tengo una pregunta al respecto.