Convierte pseudocódigo a Python
Codoritmo traduce tu algoritmo escrito en pseudocódigo, con la sintaxis de PSeInt, a un programa de Python que puedes ejecutar. Es la forma más directa de ver que lo que aprendiste con Escribir, Leer, Si y Mientras ya es programación.
Abre el programa en Codoritmo; elige Python en Ver › Traducir a.
El mismo algoritmo en pseudocódigo y en Python
El ejemplo «Adivina el número» y el Python que genera Codoritmo para él, sin retoques.
Pseudocódigo
Algoritmo AdivinaNumero Definir secreto, intento, intentos Como Entero Definir acerto Como Logico secreto <- Aleatorio(1, 100) intentos <- 0 acerto <- Falso Escribir "Pensé un número del 1 al 100. Tienes 7 intentos." Mientras (NO acerto) Y intentos < 7 Hacer intentos <- intentos + 1 Escribir "Intento ", intentos, ":" Leer intento Si intento = secreto Entonces acerto <- Verdadero SiNo Si intento < secreto Entonces Escribir Sin Saltar "Más alto" SiNo Escribir Sin Saltar "Más bajo" FinSi // Abs da la distancia sin importar el signo Si Abs(intento - secreto) <= 5 Entonces Escribir ", ¡estás muy cerca!" SiNo Escribir "..." FinSi FinSi FinMientras Si acerto Entonces Escribir "¡Correcto! Lo lograste en ", intentos, " intentos." SiNo Escribir "Se acabaron los intentos. Era el ", secreto, "." FinSiFinAlgoritmoPython generado por Codoritmo
# Este código fue generado por Codoritmo a partir del pseudocódigo.# Puede que no sea completamente correcto: revíselo antes de usarlo.import randomdef main(): secreto: int intento: int intentos: int acerto: bool secreto = random.randint(1, 100) intentos = 0 acerto = False print("Pensé un número del 1 al 100. Tienes 7 intentos.") while (not acerto) and intentos < 7: intentos = intentos + 1 print("Intento ", intentos, ":", sep="") intento = int(input()) if intento == secreto: acerto = True else: if intento < secreto: print("Más alto", end="") else: print("Más bajo", end="") if abs(intento - secreto) <= 5: print(", ¡estás muy cerca!") else: print("...") if acerto: print("¡Correcto! Lo lograste en ", intentos, " intentos.", sep="") else: print("Se acabaron los intentos. Era el ", secreto, ".", sep="")if __name__ == "__main__": main()El código es exactamente el que genera Codoritmo para este programa, incluido el comentario del inicio, que siempre sale en español.
Cómo traducir tu pseudocódigo a Python
Escribe o abre tu algoritmo
Tiene que estar sin errores de sintaxis; el panel Problemas te muestra cuáles hay.
Elige Python
En Ver › Traducir a, elige Python. La pestaña de código del panel lateral muestra la traducción.
Compara y copia
La traducción cambia mientras escribes. Cópiala o descárgala como .py con Archivo › Exportar como.
Ejecútala
Con Python 3 instalado, ejecuta python3 archivo.py en una terminal.
Abre el programa en Codoritmo; elige Python en Ver › Traducir a.
Qué tiene en cuenta la traducción
Los arreglos de PSeInt empiezan en 1 y las listas de Python en 0, así que datos[i] se traduce como datos[i - 1]. Si tu perfil usa arreglos desde 0, el índice queda igual.
Un Para con límites fijos se convierte en for … in range(…). Si los límites dependen de variables, se usa un while que funciona tanto si cuenta hacia arriba como hacia abajo.
Cuando un resultado tiene que coincidir con PSeInt, el código incluye pequeñas funciones de ayuda: por ejemplo, MOD usa math.fmod para dar el mismo signo que PSeInt, y los reales se escriben redondeados a 10 decimales.
PSeInt no distingue mayúsculas de minúsculas en los nombres, así que el código usa todos los nombres en minúsculas para que cada uso apunte a la misma variable.
Cómo se traduce cada instrucción
Cada fila es una instrucción de PSeInt traducida por Codoritmo dentro de un programa con n y i enteros, x real, nombre de texto y un arreglo datos[5]. El resultado se genera al construir esta página.
| Instrucción | PSeInt | Python |
|---|---|---|
| Escribir | Escribir "Hola, ", nombre | print("Hola, ", nombre, sep="") |
| Escribir sin salto de línea | Escribir Sin Saltar "Total: " | print("Total: ", end="") |
| Leer un entero | Leer n | n = int(input()) |
| Leer un real | Leer x | x = float(input()) |
| Número al azar | n <- Aleatorio(1, 6) | n = random.randint(1, 6) |
| Si … SiNo | Si n MOD 2 = 0 Entonces
Escribir "par"
SiNo
Escribir "impar"
FinSi | if int(math.fmod(n, 2)) == 0:
print("par")
else:
print("impar") |
| Segun | Segun n Hacer
1: Escribir "uno"
De Otro Modo: Escribir "otro"
FinSegun | if n == 1:
print("uno")
else:
print("otro") |
| Mientras | Mientras n > 0 Hacer
n <- n - 1
FinMientras | while n > 0:
n = n - 1 |
| Repetir … Hasta Que | Repetir
Leer n
Hasta Que n > 0 | while True:
n = int(input())
if n > 0:
break |
| Para | Para i <- 1 Hasta 10 Hacer
Escribir i
FinPara | for i in range(1, 11):
print(i) |
| Elemento de un arreglo | datos[1] <- n | datos[0] = n |
Codoritmo y PSeInt de escritorio
PSeInt de escritorio también exporta a otros lenguajes. Estas son las diferencias.
Lo que suma Codoritmo
- Ves la traducción al lado del pseudocódigo y cambia mientras escribes.
- Exporta también a C#, PHP, Pascal, Visual Basic, QBasic, MatLab y HTML, como PSeInt.
- La traducción respeta el perfil elegido, por ejemplo arreglos desde 0 o desde 1.
Lo que PSeInt de escritorio hace y Codoritmo todavía no
- Su exportación tiene muchos años de uso en aulas; la de Codoritmo es más reciente, así que revisa el código antes de entregarlo.
Codoritmo es un proyecto independiente, inspirado en PSeInt y compatible con su sintaxis y sus perfiles de instituciones. No es PSeInt ni está afiliado a él. Sitio oficial de PSeInt
Preguntas frecuentes
¿El Python generado funciona tal cual?
En los programas de clase, sí: se ejecuta con Python 3 sin cambios. Aun así conviene revisarlo, como dice el comentario del inicio. Si una instrucción no se puede traducir, Codoritmo lo avisa con un comentario en el código.
¿Qué versión de Python necesito?
Python 3.6 o posterior. El código usa anotaciones de tipo como n: int, que no existen en Python 2.
¿Puedo convertir de Python a pseudocódigo?
No. La traducción va en un solo sentido, de pseudocódigo a Python.
Ejemplos para probar
Programas resueltos, cada uno con su código, su diagrama y una ejecución de muestra.
Adivina el número
Adivina un número secreto del 1 al 100 en siete intentos.
IntermedioConversor de temperatura
Convierte grados Celsius a Fahrenheit y a Kelvin.
BásicoPalíndromos
Revisa si una frase se lee igual al derecho y al revés.
IntermedioOrdenamiento burbuja
Ordena números al azar intercambiando vecinos, y se detiene apenas quedan ordenados.
Intermedio
Por concepto:Ejemplos de Entrada y salida
Otras herramientas de Codoritmo
- PSeInt onlineEscribe y ejecuta pseudocódigo con la sintaxis de PSeInt desde el navegador.
- Alternativa a PSeIntUna comparación honesta entre Codoritmo y PSeInt de escritorio.
- Diagrama de flujo onlineEl diagrama de flujo de tu algoritmo, generado del código y animado al ejecutar.
- Prueba de escritorioLa tabla con el valor de cada variable en cada paso, llenada mientras el programa corre.
- Pseudocódigo a CTu algoritmo traducido a un programa en C (o C++) listo para compilar.
- Pseudocódigo a JavaTu algoritmo traducido a una clase de Java con su método main.
- Programar con bloquesArma tu algoritmo con bloques, como en Scratch, y mira el pseudocódigo que escriben.
Sigue aprendiendo
- Biblioteca de ejemplos53 algoritmos resueltos, del «Hola mundo» a los ordenamientos.
- Referencia del lenguajeCada instrucción y función de PSeInt explicada con un ejemplo.
- Perfiles de institucionesLos 463 perfiles de PSeInt y qué reglas cambia cada uno.
- Acerca de CodoritmoQué es el proyecto, quién lo hace y cómo se relaciona con PSeInt.