De pseudocódigo a Python

Si ya sabes pseudocódigo, ya sabes la parte difícil de programar: la lógica. Pasar a Python es cambiar las palabras y aprender unas cuantas reglas nuevas, como la sangría obligatoria y que las listas empiezan en 0.

Lo que ya sabes sirve

Una crítica común al pseudocódigo es que «no sirve fuera de la escuela». No es así: variables, decisiones, ciclos y arreglos funcionan igual en todos los lenguajes. Lo que cambia es cómo se escriben. Python es una buena primera opción porque su forma de escribir es de las más parecidas al pseudocódigo.

Compara el mismo programa en los dos:

Algoritmo aprobado
    Leer calificacion
    Si calificacion >= 6 Entonces
        Escribir "Aprobado"
    SiNo
        Escribir "Reprobado"
    FinSi
FinAlgoritmo
calificacion = float(input())
if calificacion >= 6:
    print("Aprobado")
else:
    print("Reprobado")

Cambian las palabras (Si por if, Escribir por print), pero el algoritmo es el mismo.

Tabla de equivalencias

Pseudocódigo y Python
PseudocódigoPython
Algoritmo nombre … FinAlgoritmoNo hace falta: el programa empieza en la primera línea
x <- 5x = 5
Leer n (número)n = int(input()) o n = float(input())
Leer nombre (texto)nombre = input()
Escribir "Hola ", nombreprint("Hola", nombre)
Si … Entonces … SiNo … FinSiif …: / else:
Segun x Hacerif / elif / else
Mientras … Hacer … FinMientraswhile …:
Para i <- 1 Hasta 10 Hacerfor i in range(1, 11):
Repetir … Hasta Que …while True: … if …: break
= (comparar)==
<>!=
Y, O, NOand, or, not
MOD%
^**
Verdadero, FalsoTrue, False
Dimension a[5]a = [0] * 5
// comentario# comentario

La regla más importante: la sangría

En pseudocódigo, la sangría ayuda a leer, pero lo que cierra un bloque es FinSi o FinMientras. En Python no hay palabras de cierre: la sangría es lo que define qué está dentro de qué. Después de los dos puntos (:) de un if, while o for, las líneas de adentro van con 4 espacios. Cuando regresas a la orilla, el bloque terminó.

Si en pseudocódigo ya acomodas bien la sangría, esta regla no te va a costar trabajo.

Leer datos: input() siempre da texto

Esta es la trampa más común. En pseudocódigo, Leer n guarda un número si escribes un número. En Python, input() siempre devuelve texto. Si lo usas para sumar, junta los textos en vez de sumar:

a = input()
b = input()
print(a + b)

Hay que convertirlo: int() para enteros y float() para números con decimales.

a = int(input())
b = int(input())
print(a + b)

Otro detalle: en Python, una división con / siempre da un número con decimales. 10 / 2 da 5.0, no 5. Si necesitas el entero, usa // o int().

Ciclos: el range que no incluye el final

El Para se traduce con for y range(). El detalle es que range(1, 11) va del 1 al 10: el número final no se incluye. Por eso Para i <- 1 Hasta 10 se escribe con 11.

Algoritmo tabla_del_3
    Para i <- 1 Hasta 5 Hacer
        Escribir "3 x ", i, " = ", 3 * i
    FinPara
FinAlgoritmo
for i in range(1, 6):
    print("3 x", i, "=", 3 * i)

Mientras se traduce casi palabra por palabra con while. Python no tiene Repetir … Hasta Que, así que se usa un ciclo que se repite siempre y se rompe con break cuando se cumple la condición:

while True:
    clave = input("Contraseña: ")
    if clave == "jaguar":
        break
print("Bienvenido")

Segun: if y elif

El Segun se traduce con una cadena de if, elif (abreviatura de «else if») y else para el De Otro Modo:

dia = int(input())
if dia == 1:
    print("Lunes")
elif dia == 2:
    print("Martes")
elif dia == 6 or dia == 7:
    print("Fin de semana")
else:
    print("Otro día")

Las versiones recientes de Python también tienen match, que se parece más al Segun, pero if/elif funciona en todas y es lo más común.

Arreglos y listas: empiezan en 0

Los arreglos de pseudocódigo son listas en Python. La diferencia clave: en PSeInt la primera posición es 1, y en Python es 0. Una lista de 5 elementos va de la posición 0 a la 4.

Algoritmo suma_arreglo
    Dimension v[3]
    v[1] <- 10
    v[2] <- 20
    v[3] <- 30
    suma <- 0
    Para i <- 1 Hasta 3 Hacer
        suma <- suma + v[i]
    FinPara
    Escribir "Suma: ", suma
    Escribir "El primero: ", v[1]
FinAlgoritmo
v = [10, 20, 30]
suma = 0
for i in range(0, 3):
    suma = suma + v[i]
print("Suma:", suma)
print("El primero:", v[0])

En Python también puedes recorrer la lista sin posiciones, como el Para Cada: for x in v:. Y para sumarla hay una función lista: sum(v).

Un ejemplo completo

Un programa que lee calificaciones hasta que escribas -1 y muestra el promedio. Primero en pseudocódigo:

Algoritmo promedio_hasta_menos_uno
    suma <- 0
    cuantos <- 0
    Leer c
    Mientras c <> -1 Hacer
        suma <- suma + c
        cuantos <- cuantos + 1
        Leer c
    FinMientras
    Si cuantos > 0 Entonces
        Escribir "Promedio: ", suma / cuantos
    SiNo
        Escribir "No hubo calificaciones"
    FinSi
FinAlgoritmo

Y en Python, línea por línea:

suma = 0
cuantos = 0
c = float(input())
while c != -1:
    suma = suma + c
    cuantos = cuantos + 1
    c = float(input())
if cuantos > 0:
    print("Promedio:", suma / cuantos)
else:
    print("No hubo calificaciones")

La única diferencia en el resultado es el 9.0: en Python, dividir siempre da decimales.

Ver tu programa en Python con Jaguar

Jaguar tiene una vista de Python que muestra tu pseudocódigo traducido mientras lo escribes. Viene apagada para que al principio te concentres en la lógica: se activa en los ajustes de la app. Al prenderla, ves lado a lado las dos versiones del mismo programa, y la traducción elige cosas como int(input()) o float(input()) según cómo usas cada variable.

Úsala como apoyo para leer, no para copiar. El ejercicio que más enseña es escribir tú la versión en Python y después compararla con la de Jaguar.

Errores comunes al pasar a Python

  • No convertir el input() a número: "2" + "3" da "23".
  • Usar = para comparar. En Python se compara con ==; un solo = asigna.
  • Olvidar los dos puntos al final de if, else, while y for.
  • Sangría desigual. Mezclar 2 y 4 espacios, o tabuladores y espacios, da error.
  • El final del range. range(1, 10) llega a 9, no a 10.
  • Posiciones de listas desde 1. En Python, v[1] es el segundo elemento.

Preguntas frecuentes

¿Es difícil pasar de pseudocódigo a Python?

No mucho, si ya entiendes la lógica. La mayoría de las instrucciones tienen un equivalente directo. Lo nuevo es que la sangría es obligatoria, que input() siempre da texto y que las listas empiezan en 0.

¿Cómo se escribe Leer en Python?

Con input(). Como siempre devuelve texto, para números se convierte: int(input()) para enteros y float(input()) para números con decimales.

¿Cómo se escribe Para en Python?

Con for y range. Para i <- 1 Hasta 10 se escribe for i in range(1, 11), porque range no incluye el número final.

¿Python tiene Repetir … Hasta Que?

No. Se usa while True: con un if que hace break cuando se cumple la condición. Así los pasos se hacen al menos una vez, igual que en Repetir.

Sigue aprendiendo