La lógica de programación con Python consiste en transformar un problema en una secuencia clara de pasos que una computadora pueda ejecutar. Antes de aprender bibliotecas o frameworks, necesitas comprender entradas, salidas, variables, condiciones, repeticiones, funciones y estructuras de datos. Estos elementos aparecen en casi todos los programas.
En esta guía construirás una base práctica mediante algoritmos, pseudocódigo y ejemplos en Python. También desarrollarás un pequeño sistema de notas con validación. Para profundizar en el concepto general, consulta la guía sobre algoritmos en programación.
Del problema al algoritmo
Un algoritmo es una secuencia finita de instrucciones. Antes de escribir código, responde estas preguntas:
- ¿Qué datos recibe el programa?
- ¿Qué resultado debe producir?
- ¿Qué reglas o restricciones existen?
- ¿Qué casos especiales pueden aparecer?
- ¿Cómo sabrás que el resultado es correcto?
Por ejemplo, para calcular el promedio de tres notas:
- Leer las tres notas.
- Comprobar que estén entre 0 y 10.
- Sumarlas.
- Dividir el total entre tres.
- Mostrar el promedio y la situación del estudiante.
Escribir pseudocódigo
El pseudocódigo describe la solución sin depender de la sintaxis exacta de un lenguaje.
INICIO
LEER nota1, nota2, nota3
SI alguna nota está fuera de 0 a 10
MOSTRAR error
SI NO
promedio = (nota1 + nota2 + nota3) / 3
MOSTRAR promedio
FIN SI
FINEste paso permite revisar la lógica antes de preocuparte por paréntesis, sangría o nombres de funciones.
Entrada, procesamiento y salida
nombre = input("Nombre: ").strip()
precio = float(input("Precio: "))
cantidad = int(input("Cantidad: "))
total = precio * cantidad
print(f"{nombre}, el total es {total:.2f}")La entrada llega como texto y debe convertirse cuando representa números. La guía de entrada y salida en Python explica input(), print(), conversiones y archivos.
Variables y tipos
Una variable asocia un nombre con un valor. Elige nombres que indiquen significado:
edad_usuario = 24
saldo_disponible = 150.75
nombre_completo = "Laura Gómez"
cuenta_activa = TrueLos tipos influyen en las operaciones disponibles. Una cadena se concatena; un número se suma; una lista almacena una secuencia. Cuando un resultado parece extraño, comprueba el tipo con type().
Tomar decisiones con if
edad = 20
if edad < 0:
print("Edad no válida")
elif edad < 18:
print("Menor de edad")
else:
print("Mayor de edad")Las ramas deben ser mutuamente comprensibles. Ordena primero los casos inválidos o específicos y deja el caso general para el final. El tutorial oficial sobre sentencias if muestra su sintaxis.
Repetir tareas
Usa for para recorrer una colección o secuencia conocida:
notas = [7.5, 8.0, 6.5]
total = 0
for nota in notas:
total += nota
promedio = total / len(notas)
print(promedio)Usa while cuando la repetición dependa de una condición:
intentos = 3
while intentos > 0:
clave = input("Clave: ")
if clave == "python123":
print("Acceso permitido")
break
intentos -= 1
else:
print("Acceso bloqueado")La guía de bucles en Python cubre for, while, break y continue.
Dividir el problema en funciones
def calcular_promedio(notas):
if not notas:
raise ValueError("La lista no puede estar vacía")
return sum(notas) / len(notas)
def esta_aprobado(promedio, minimo=6.0):
return promedio >= minimoUna función recibe datos, realiza una responsabilidad y devuelve un resultado. Separar tareas facilita probar y reutilizar la solución. Consulta la guía de funciones en Python.
Elegir estructuras de datos
Una lista es adecuada para varias notas. Un diccionario permite asociar campos con valores.
estudiante = {
"nombre": "Marcos",
"notas": [7.0, 8.5, 9.0],
"activo": True,
}
promedio = calcular_promedio(estudiante["notas"])
print(estudiante["nombre"], promedio)La guía de diccionarios en Python explica claves, valores y acceso seguro.
Validar antes de procesar
def leer_nota(mensaje):
while True:
texto = input(mensaje).strip()
try:
nota = float(texto)
except ValueError:
print("Escribe un número")
continue
if not 0 <= nota <= 10:
print("La nota debe estar entre 0 y 10")
continue
return notaLa validación impide que datos imposibles lleguen al cálculo. Captura solamente los errores esperados y muestra una explicación útil.
Proyecto: sistema de notas
def leer_nota(mensaje):
while True:
try:
nota = float(input(mensaje))
except ValueError:
print("Valor no válido")
continue
if 0 <= nota <= 10:
return nota
print("La nota debe estar entre 0 y 10")
def calcular_promedio(notas):
return sum(notas) / len(notas)
def clasificar(promedio):
if promedio >= 9:
return "Excelente"
if promedio >= 6:
return "Aprobado"
return "Debe recuperar"
def main():
nombre = input("Nombre del estudiante: ").strip()
notas = []
for numero in range(1, 4):
notas.append(leer_nota(f"Nota {numero}: "))
promedio = calcular_promedio(notas)
situacion = clasificar(promedio)
print(f"Estudiante: {nombre}")
print(f"Promedio: {promedio:.2f}")
print(f"Situación: {situacion}")
if __name__ == "__main__":
main()El programa separa entrada, validación, cálculo, clasificación y presentación. Esta organización facilita cambiar el número de notas o la regla de aprobación.
Rastrear una ejecución manualmente
Cuando un algoritmo falla, crea una tabla con los valores de las variables en cada paso. Para una lista [4, 2, 7], registra el valor del acumulador después de cada iteración. Esta técnica revela condiciones incorrectas y actualizaciones ausentes.
Casos de prueba
Comprueba al menos:
- Notas normales.
- Valores límite, como 0, 6 y 10.
- Lista vacía.
- Texto en lugar de números.
- Valores negativos o mayores que 10.
La documentación de funciones integradas de Python sirve como referencia para herramientas como sum(), len(), min() y max().
Errores frecuentes de lógica
- Confundir la condición que continúa con la que detiene un bucle.
- Olvidar actualizar una variable dentro de
while. - Usar
andcuando la regla necesitaor. - Dividir entre una cantidad incorrecta.
- No validar una lista vacía.
- Modificar una colección mientras se recorre.
- Mezclar entrada, cálculo y salida en un bloque difícil de probar.
Cómo practicar
Resuelve problemas pequeños: conversor de unidades, tabla de multiplicar, menú de tareas, cálculo de descuentos, búsqueda de mayor valor y contador de palabras. Primero escribe entradas, salidas y pseudocódigo; después implementa; finalmente prueba casos normales y límites.
Conclusión
La lógica de programación con Python se construye aprendiendo a descomponer problemas. Define claramente las entradas, las reglas y la salida; utiliza condiciones para decidir, bucles para repetir, funciones para dividir responsabilidades y estructuras adecuadas para representar datos.
No busques memorizar soluciones completas. Practica el proceso: comprender, planificar, implementar, probar y corregir. Esa secuencia es aplicable a programas pequeños y a sistemas mucho más complejos.






