¿Qué son?
Las constantes son variables que en un principio van a tener un valor único a lo largo de la ejecución del programa. El hecho de que vayan a tener un solo valor nos permite tratarlas de manera diferente al resto. Las etiquetaremos como constantes poniendo su nombre en mayúsculas. Por ejemplo:
PI = 3.1415926535
E = 2.7182818284
Declararla en mayúsculas nos permitirá diferenciarla del resto del resto de variables.
No es obligatorio pero las convenciones se acuerdan para ser cumplidas ya que aportan un valor extra y mejoran la programación del lenguaje.
Realmente daría igual declarar la variable de cualquiera de las dos formas
pi = 3.14 o PI = 3.14
El código que usara estas variables obtendría el mismo resultado independientemente de cómo la hubiéramos declarado. Pero el hacerlo en mayúsculas aporta beneficios.
¿Por qué usarlas?
Si en algún momento tenemos que retocar el código, el uso de esta convención nos facilitará la tarea enormemente.
Veamos un ejemplo. Hagamos un programa que calcule el precio de una ensaimada de Mallorca según su radio. A mayor radio, mayor área y, por tanto, mayor precio.
Lo haremos de dos formas distintas: forma 1 con variables y forma 2 con constantes.
1 2 3 4 5 |
#forma 1 radio = float (input("Radio de la ensaimada en cm: ")) superficie = 3.14159*radio**2 precio_final = superficie*0.025*(1+0.21) print ("El precio de la ensaimada de radio", radio, "cm. es de", precio_final, "€.") |
1 2 3 4 5 6 7 8 |
#forma 2 PI = 3.14159 PRECIO_CM2 = 0.025 IVA = 0.21 # 21%, es decir, 21/100, es decir 0.21 radio = float (input("Radio de la ensaimada en cm: ")) superficie = PI*radio**2 precio_final = superficie*PRECIO_CM2*(1+IVA) print ("El precio de la ensaimada de radio", radio, "cm. es de", precio_final, "€.") |
A y B calculan lo mismo y de la misma forma, aunque sean diferentes, pero viendo el código se aprecia claramente que el B es mucho más legible porque el nombre de las constantes lo clarifican.
Además si en un futuro cambiara el % del impuesto por ejemplo, sería mucho más fácil retocar el código en B que en A.