
Las variables: más ejemplos (debugging o depuración Python)

Actualiza para más contenido
¿Verdadero o falso? "NameError" significa que hemos usado ya varias veces el mismo nombre para una variable.
Lina ha escrito un programa y éste es su pseudocódigo: Anotar nombre y edad de dos usuarios. Calcular la diferencia de edad entre ellos y mostrar resultado. Este es el pseudocódigo traducido al código Python y guardado bajo el nombre de "programa". Comprobemos si funciona el código. Anotar nombre y edad de dos personas Oh. ¡Mensaje de error! "línea de programa" cinco.
Hay un error en la línea cinco del programa. Es un ErrorNombre. El nombre edad1 "no está definido". La línea cinco se refiere a la quinta orden. Veamos qué pasa.
Primera Segunda Tercera Cuarta La quinta orden es ésta: resultado igual a edad1 menos edad2 Así que esta orden contiene errores de nombre. edad1 no está definido. Eso significa que la variable edad1 no se creó al usar la orden cinco. Pero hemos creado - declarado - la variable edad1 aquí arriba en el código. Vaya, hay una pequeña diferencia. ¿La ves?
Cuando declaramos la variable, pusimos una A mayúscula, pero en el código intentamos usar una 'a' minúscula. ¡Tratamos de usar una variable que no existe! En Python las mayúsculas y minúsculas importan mucho a la hora de ponerles nombres a las variables. Pongamos una 'a' minúscula y volvamos a probar. Cuando hemos anotado los nombres y edades, la orden 5 parecía funcionar. Se ha solucionado el problema. ¡Bien!
Pero... ¡Otro mensaje de error! Esta vez nos dice que la que está mal es la número seis. Ahora es un ErrorTipo. El tipo de variable es incorrecto. Tiene que ser str, es decir, algo tiene que ser una cadena de texto, y no int, es decir, que no puede ser un número entero.
La orden número seis es la orden print. Dentro del paréntesis de la orden print hay distintas variables. ¿Cuáles son números enteros? n1 es un texto. "is" es un texto. "resultado" se obtuvo restando un número entero a otro número entero; eso da un número entero y no un texto. ¡Hemos dado con el número entero que debería ser un texto! Cambiemos el resultado de un tipo de variable 'número entero' a un tipo 'cadena de texto'. Eso es muy fácil: Hay que poner str y un paréntesis antes de "resultado" y cerrar el paréntesis.
Volvamos a comprobar el código. Introducir nombres y edades, igual que antes. Lina 16 María 15 Lina es un año mayor que María. Funciona y ¡sin ningún mensaje de error! Si quieres ver qué mensajes de error hay, puedes introducir a propósito errores en el código y a ver qué mensajes de error recibes.