[MÚSICA] Hola y bienvenidos. En esta lección vamos a ver que para poder escribir programas útiles necesitaremos recordar algunos valores antes de poder operar con de ellos. Y para eso vamos a utilizar elementos del lenguaje que llamaremos variables. Entonces, ahora que sabemos calcular valores usando expresiones, podríamos tratar de escribir algo más interesante en pacto. Supongamos, por ejemplo, que estamos en un estacionamiento que cobra 200 pesos por hora y queremos saber cuánto hay que pagar. Necesitaremos saber a qué hora llegamos y a qué hora salimos. Supongamos que llegamos a las 14 y que salimos a las 19. Podemos escribir esta expresión que lo calcula, 19 menos 14 multiplicada por 200. Es como si lo estuviéramos haciendo con un calculadora. Pero para escribir 19 menos 14, tenemos que recordar que llegamos a los 14 y yo no sé ustedes pero yo olvido rápidamente todos los números. Necesitamos entonces que nuestro programa recuerde datos para poder usarlos posteriormente. Y una manera sencilla de conseguirlo será primero asignarle un nombre al valor que queremos recordar y luego dejar que el computador, que el computador tiene mucha memoria, recuerde los valores por nosotros. A estos nombres les llamaremos variables y cada vez que los usemos Paython utilizará el último valor que almacenemos con este nombre. Entonces, ahora usaremos una variable y le pondremos de nombre llegada. Siempre es bueno usar nombres que nos ayuden un poco a recordar qué tipo de información estamos guardando. Luego escribimos el símbolo igual y a continuación el valor 14. Este operador igual, cuidado no representa una igualdad sino que es una instrucción que le llamaremos asignación. Y estamos diciendo con esto, que vamos a asignar el valor entero 14 a la variable que tiene por nombre llegada. Y lo que es mejor aún, que Paython va a recordar bien que cada vez que escribamos llegada, en verdad nos estamos refiriendo al valor 14. Entonces, ahora si no recordamos a qué hora llegamos, en verdad no importa, porque podemos escribir la expresión de esta manera, 19 menos llegada multiplicada por 200. Cuando Paython evalúe esta expresión, reemplazará el nombre llegada por el último valor que guardamos en esta variable y nos responderá con el valor correcto. Pero podemos ir más allá, supongamos que tampoco puedo recordar cuánto es el precio por hora, you que hace mucho que he entrado al estacionamiento y you no me acuerdo. Entonces usaremos otra variable, que le llamamos pesos por hora. Igual noten que no escribimos un espacio, sino que escribimos símbolo de guión bajo. Le asignaremos el valor 200. De esta manera, cuando queramos calcular el precio, usaremos la expresión que dice 19 menos llegada, multiplicado por pesos por hora y esto nos entrega el valor correcto. Supongamos que ahora vuelvo a entrar al estacionamiento más tarde y ahora llego a las 20, por lo tanto lo que hago es que modifico el valor de la variable llegada y le asigno ahora el valor 20. Además uso una variable que se llama salida y le asigno el valor 22. De esta manera la expresión, si ahora escribo, salida menos llegada multiplicada por pesos por hora, bueno Paython evaluó la expresión y me da el valor correcto. Pero, notemos algunas cosas, la variable llegada posee el valor 20 porque es el último valor que se le asignó. El valor anterior que era 14, se descartó, lo perdimos. Por otro lado, la variable pesos por hora conserva el mismo valor que tenía al inicio, you que no hemos vuelto a ejecutar en todo este código, ninguna instrucción de asignación sobre ella. Entonces aquí estamos frente a la instrucción, que tal vez es la más común que vamos a ver en este lenguaje y tal vez en muchos lenguajes. La instrucción de asignación que se usa de esta manera. Escribimos un nombre en el lado izquierdo del símbolo de asignación y una expresión aquí en el lado derecho. Y cada vez que ejecutamos una instrucción de asignación lo que hace Paython es que calcula la expresión que está aquí en el lado derecho, la guarda en alguna parte de toda la memoria del computador y le pone una etiqueta con el nombre que está en el lado izquierdo. Por ejemplo, cuando ejecutamos la instrucción que dice R igual a cinco, el computador escribe en alguna parte de su memoria el valor cinco y le agrega una etiqueta aquí al lado con el nombre de la variable. Lo mismo pasa si asignamos el nombre pi, al valor tipo flow 3.14159 o el valor de tipo str, que diga el área es a una variable de nombre es. Pero, ahora si queremos calcular una expresión que sea un poco más compleja, por ejemplo, área igual pi por R, elevado a dos. Lo que Paython va hacer, va a ser que va a ir a la memoria va a buscar, qué es lo que se llama R, qué es lo que se llama pi y va a reemplazar eso en la expresión, de manera que lo que calcula es el valor flow, que se llama con el valor 78.53795. Lo guardó en memoria y le pone una etiqueta con el nombre área. Y ahora escribimos área, pero notamos que el programa no ha escrito nada en la pantalla. Entonces, si queremos recuperar el valor que está guardadado bajo el nombre ahora de área, bueno escribimos área y lo que hace Paython va a la memoria, busca el valor y lo escribe en la pantalla. Una característica fundamental de la variable es que siempre podemos reasignar su valor. ¿Qué pasa si ahora queremos cambiar el valor de R haciendo la asignación R igual 12.8. Bueno Paython busca un espacio libre en la memoria guarda el valor 12.8 y desplaza la etiqueta R a esa nueva posición. De manera que la próxima vez que usemos R en una expresión, Paython va a utilizar el nuevo valor 12.8, en lugar del valor antiguo que era cinco. Podríamos preguntarnos también qué paso ahora con el valor de la variable área. Por qué cambiamos el valor de R, pero en verdad si escribimos área obtenemos el mismo valor que antes porque no hemos hecho ninguna operación de asignación sobre la variable área. Entonces cada vez que tengamos un poco de confusión sobre qué valor se está calculando, podemos utilizar un dibujo como este y háganlo para poder ver y entender qué está pasando en la memoria del computador. Y ahora una advertencia, tal cual nosotros no podemos recordar algo que nunca ha ocurrido, Paython tampoco puede recordar algo que nunca le hemos asignado un valor. Si por ejemplo calculamos ahora, área igual pi por radio elevado a dos, pero radio nunca lo hemos escrito, nunca hemos asignado un valor a la variable radio, aquí yo ocurre que me equivoqué y escribí radio en lugar de R. Entonces Paython va a buscar en memoria algo que se llame radio, no lo va a encontrar y nos va a entregar un error, diciendo que radio es algo que no está definido. Ahora que sabemos que podemos asignar nombres, valores a nombres de variables, tenemos que tener cuidado porque no cualquier nombre puede ser usado. Hay algunas reglas que hay que seguir, pero estas reglas no son muy complicadas. Aquí la regla dice, que todo nombre de variable debe empezar o bien con una letra o con un símbolo de guión valor bajo. Y luego de ello, podemos seguir con letras, con números o con otros símbolos de guión bajo. Por ejemplo, todos estos nombres son nombres de variables válidos. Pero si escribimos algo de este estilo, son todos estos nombres que tienen símbolos especiales, que empiezan con un número o tienen un espacio, no son válidos. También es importante que los nombres de variables con mayúsculas o minúsculas son distintos. De esta manera todas estas variaciones de Vivaldi si bien son nombres válidos, cada uno representa una variable distinta. Cada lenguaje de programación incluye ciertas variables, que ciertos nombres que están reservados, que no podemos utilizar como nombres de variables y Paython no es ninguna excepción. Esta lista aquí de treinta y algo palabras, son palabras reservadas, que nunca, nunca pueden ser usadas como nombres de variables. Si lo intentan van a obtener un error, así que si querían ponerle alguno de estos nombres pueden mejor echar a andar la imaginación e ir pensando en algún otro nombre. Y si encuentran que esta lista es muy larga, que no me la voy a poder memorizar, bueno no importa, nos vamos a encontrar con algunos de estos nombres y vamos aprender que no es necesario usarlos en ninguna parte de nuestro programa porque tienen un significado especial. Entonces en esta lección hemos visto cómo utilizar variables para recordar valores que posteriormente podamos usarlos en otras expresiones. Para eso utilizamos el símbolo igual para efectuar instrucciones de asignación de valores a nombres de variables. Estas reglas pueden ser reasignadas posteriormente para recordar otros valores. Finalmente, vimos que los nombres para poder ser usados deben cumplir ciertas reglas del lenguaje. Muchas gracias.