CON · Concepto 2 · Datos y variables

7.Constante

Un valor con nombre que no cambia durante el programa, como el IVA o el número de días de la semana; hace el código más claro y fácil de modificar.

¿Qué es?

Una constante es un valor con nombre que no cambia mientras el programa se ejecuta: la tasa del IVA, la calificación mínima para aprobar, el número de días de la semana.

Si la variable es una caja que puedes vaciar y volver a llenar, la constante es una placa grabada: el valor está fijo y cualquiera que la lea sabe qué significa.

¿Por qué usarlas?

Sin constante Con constante
total = precio * 1.16 total = precio * (1 + IVA)
¿Qué es 1.16? Se entiende de inmediato
Si cambia el IVA, hay que buscar cada 1.16 Se cambia en un solo lugar

En cada lenguaje

  • PSeInt no tiene una forma de declarar constantes propias (solo trae PI); se usa una variable que no se modifica después de asignarla.
  • Python tampoco tiene constantes «reales»: por convención, se escriben con MAYÚSCULAS y nadie las modifica.
  • Otros lenguajes sí las protegen: const en JavaScript, final en Java.

Sintaxis (pseudocódigo / Python)

PSeInt

Algoritmo PrecioConIva
	Definir IVA, precio, total Como Real
	IVA <- 0.16   // se asigna una vez y no se cambia
	Escribir "Precio:"
	Leer precio
	total <- precio * (1 + IVA)
	Escribir "Total: ", total
	Escribir "Área de un círculo de radio 2: ", PI * 2 ^ 2
FinAlgoritmo

Python

import math

IVA = 0.16
CALIFICACION_MINIMA = 6

precio = float(input("Precio: "))
total = precio * (1 + IVA)
print("Total:", round(total, 2))
print("Área de un círculo de radio 2:", round(math.pi * 2 ** 2, 2))
Elemento PSeInt Python
Constante propia Variable que no se modifica Nombre en MAYÚSCULAS, por convención
π PI math.pi

Ejemplo guiado

Problema: calcular el pago semanal de un trabajador con 40 horas normales y horas extra pagadas al doble.

1. Identificar los valores fijos: horas normales por semana (40) y factor de horas extra (2).

2. Código con constantes

HORAS_NORMALES = 40
FACTOR_EXTRA = 2

horas = float(input("Horas trabajadas: "))
pago_hora = float(input("Pago por hora: "))

if horas <= HORAS_NORMALES:
    pago = horas * pago_hora
else:
    extra = horas - HORAS_NORMALES
    pago = HORAS_NORMALES * pago_hora + extra * pago_hora * FACTOR_EXTRA

print("Pago semanal:", pago)

Salida esperada (con 45 horas y 100 por hora):

Horas trabajadas: 45
Pago por hora: 100
Pago semanal: 5000.0

(40 × 100 = 4000, más 5 × 100 × 2 = 1000.)

Si la ley cambia la jornada, solo hay que modificar HORAS_NORMALES.

Errores comunes

# ✗ Poco claro: ¿qué es 0.16? Si cambia, hay que buscarlo en todos lados
subtotal = 200
total = subtotal + subtotal * 0.16

Buenas prácticas

  • MAYÚSCULAS_CON_GUIONES_BAJOS para constantes en Python (PEP 8).
  • Al inicio del programa o en un módulo de configuración.
  • Con un nombre que explique: DIAS_SEMANA = 7, LIMITE_INTENTOS = 3.
  • No todo número es constante: x * 2 para duplicar no necesita una constante DOS = 2.

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

Antes conviene ver…

© solutions_ · Fundamentos de programación · 7 Constante