¿Qué son los valores literales?

Un valor literal es un valor que se escribe directamente
en el código. Los valores literales pueden ser de
diferentes tipos de datos, como int
,
str
, bool
, etc.
Por ejemplo, esto es una cadena literal:
frase = "Aprendiendo Python"
Espacio publicitario
Esta cadena no va a variar en el código. Sí que podemos hacer variar el valor de la variable, reasignando otro valor, pero la cadena escrita en esa línea de código, es literal.
Realmente, en la reasignación reemplazas el valor literal por lo que reasignes. Lo cual implicará un nuevo dato, y no una modificación del anterior.
A continuación tienes un ejemplo de lo que estoy diciendo:
frase = "Aprendiendo Python"
frase = "La frase ha cambiado totalmente"
Tenemos la misma variable con dos cadenas literales en el código. Una está asignada en la primera línea, y la otra se asigna más adelante, pero son dos cadenas literales diferentes. La segunda reemplaza a la primera.
¿Cómo creamos cadenas que no sean literales?
Podemos crear cadenas que no sean literales de varias formas. Una de ellas, es utilizando una entrada de datos:
nombre = input("Introduzca su nombre:\n")
print("Su nombre es: " + nombre)
La variable nombre
, contiene una cadena
literal ("Introduzca su nombre:\n"
). El
contenido de la frase del input()
, no va a
cambiar; por eso es literal.
En cambio, gracias a la variabilidad del
input()
, estamos haciendo que la cadena
generada en el print()
, no sea literal.
La cadena final que sacará el print()
,
después de concatenar, es un conjunto entre la cadena
literal "Su nombre es: "
, y el valor no
literal de la variable nombre
. Lo que da
finalmente, una cadena que no es literal.
Para saber identificar qué cadenas son literales y cuáles no, es tan sencillo como que te hagas la siguiente pregunta.
Antes de ejecutar el programa, ¿sabes el valor de la cadena?
En el caso de la primera cadena puedes leer la frase, y no
va a cambiar. Ya sabes su valor desde el principio. Sin
embargo, no sabes el valor que va a tener exactamente la
cadena resultante del print()
, o el propio
valor que va a tener la variable nombre
. Eso
dependerá de lo que escriba el usuario en la consola.
Otros tipos de datos literales
Los valores literales no son solo de tipo
str
. Son todos aquellos datos que sean
estáticos (que no varíen).
Por ejemplo, los siguientes valores numéricos son literales:
numero1 = 10
numero2 = 586
Con la extensión Pylint de Visual Studio Code, puedes comprobar qué variables llevan valores literales. Te aparecerán mensajes informativos como este:
Constant name "numero1" doesn't conform to UPPER_CASE naming style.
Espacio publicitario
Todavía no entraré mucho en detalles con este tema de las constantes, pero que sepas, que lo que está indicando, es que el nombre de constante debe ir en mayúsculas, debido a la convención de nombres de Python.
Entonces, si está tratando esto como un valor constante, quiere decir, que es literal. Lo podemos deducir de esa información.
En inglés, los valores literales se denominan literals
Valores literales sin soporte
En Python es posible escribir valores literales sueltos en el código:
"Este valor es literal y no tiene soporte, está 'suelto en el código'."
Esto implica no poder utilizarlo en ningún punto del código. El intérprete de Python lo lee, pero no va a hacer nada con este elemento.
El motivo es que como no tiene un identificador, no podemos hacer referencia al elemento en ningún momento.
Recuerda las docstrings. Este tipo de comentario multilínea es una cadena literal sin soporte (sin identificador). Estas sí que las podremos utilizar de alguna manera sobre la consola y en Visual Studio Code en temas de documentación, pero ese ya es un tema más avanzado.
Espacio publicitario
Espacio publicitario
Ejercicio de Python para resolver
30. Sobre el siguiente código, indica cuál de estas instrucciones maneja un valor literal y cuál no.
nombre = input("¿Cómo te llamas? ")
print(nombre)
La función
input("¿Cómo te llamas?")
contiene un
valor literal, ya que el texto
"¿Cómo te llamas?"
es fijo y se muestra
como mensaje al solicitar al usuario que ingrese su
nombre.
Sin embargo, el valor que se guardará en la variable
nombre
no es literal, ya que dependerá de
lo que el usuario ingrese en tiempo de ejecución, lo
cual hace que su valor sea dinámico y no fijo.
Espacio publicitario