- Ejecutores
-
Aprender
Centro de aprendizaje de Python Ejemplos ejecutables, NumPy, pandas y más Centro de aprendizaje de C y C++ Punteros, memoria, STL y C++ moderno Centro de aprendizaje de C#Fundamentos, POO, LINQ, async y ejercicios de .NET Algoritmos en Python Búsqueda, ordenación, recursión y visualizadores O(n) Algoritmos en C y C++ Compara implementaciones en C y C++
- Retos
Un algoritmo genético mejora una población de soluciones candidatas como lo hace la evolución: selecciona padres aptos, los combina y añade mutaciones aleatorias. Aquí los candidatos son cadenas de bits y la aptitud es el número de 1 (el problema OneMax).
Para que se pueda probar, cada elección aleatoria se proporciona. Con N cadenas (N par), construye N hijos por parejas. Para la pareja k = 0, 1, …, N/2 - 1:
- Selección: parent1 gana el torneo
tournaments[2k]y parent2 ganatournaments[2k + 1]. Un torneo[i, j]lo gana la depopulation[i]ypopulation[j]que tenga más 1; en caso de empate, ganapopulation[i]. - Cruce en c =
crossover_points[k]: hijo 2k = parent1[0:c] + parent2[c:] e hijo 2k + 1 = parent2[0:c] + parent1[c:].
Después aplica cada mutación [child, position] en orden invirtiendo ese bit de ese hijo.
Implementa ga_generation(population, tournaments, crossover_points, mutations).
Entrada
population: N cadenas de bits de la misma longitud L.
tournaments: N parejas de índices de la población.
crossover_points: N/2 puntos de corte, cada uno entre 1 y L - 1.
mutations: Parejas [child, position] (puede estar vacío).
Salida
Devuelve los N hijos en orden.
Restricciones
2 ≤ N ≤ 200 (N par), 2 ≤ L ≤ 64
0 ≤ número de mutaciones ≤ 1.000
Ejemplos
Ejemplo 1
Entrada:
mutations = [
[0, 0]
]
population = ["0000", "1111", "1100", "0011"]
tournaments = [
[0, 1],
[2, 3],
[1, 2],
[0, 3]
]
crossover_points = [2, 1]
Salida esperada:
["0100", "1111", "1011", "0111"]
Explicación
Pareja 0: "1111" vence a "0000", y "1100" empata con "0011", así que gana la primera. Cortar tras 2 bits da "1100" y "1111". Pareja 1: padres "1111" y "0011", corte tras 1 bit: "1011" y "0111". Por último, al hijo 0 se le invierte el bit 0: "0100".
Ejemplo 2
Entrada:
mutations = []
population = ["10", "01"]
tournaments = [
[0, 1],
[1, 0]
]
crossover_points = [1]
Salida esperada:
["11", "00"]
Explicación
Ambas cadenas tienen un 1, así que cada torneo lo gana su primer índice: parent1 = "10" y parent2 = "01". Cortar tras 1 bit da "11" y "00".
Referencias
-
Ejemplo 1 Sin ejecutarEntrada:
mutations = [ [0, 0] ] population = ["0000", "1111", "1100", "0011"] tournaments = [ [0, 1], [2, 3], [1, 2], [0, 3] ] crossover_points = [2, 1]Salida esperada:["0100", "1111", "1011", "0111"]Tu salida -
Ejemplo 2 Sin ejecutarEntrada:
mutations = [] population = ["10", "01"] tournaments = [ [0, 1], [1, 0] ] crossover_points = [1]Salida esperada:["11", "00"]Tu salida
4 pruebas ocultas también se ejecutan al enviar.
Compilador y depurador Python online
Escribe, ejecuta y depura Python online. Usa puntos de interrupción y ejecución paso a paso en modo Servidor, sin instalar nada.
🚀 4,279,692 ejecuciones totales (92 este mes)
Practica Python con desafíos de código
Resuelve problemas prácticos en este editor: ejecuta las pruebas de ejemplo, envía tu solución y recibe una revisión de código por IA.
🐍 Acerca de este ejecutor de Python en línea
El CodeUtility Python Executor te permite escribir, ejecutar y probar código Python directamente en tu navegador - sin configuración ni instalación. Está impulsado por un sandbox seguro que soporta versiones reales de Python desde la 3.10 hasta la 3.13.
Ya sea que estés aprendiendo Python por primera vez, probando fragmentos rápidos o depurando lógica, esta herramienta ofrece un entorno de desarrollo rápido y sin distracciones. Puedes experimentar libremente y ver la salida al instante en la consola integrada.
Es ideal para principiantes, estudiantes y desarrolladores que necesitan un IDE en línea ligero para practicar Python o para prototipado rápido.
Más que un ejecutor de código
Utiliza un editor de varios archivos, un terminal de ejecución aislado, bibliotecas específicas del entorno, espacios de trabajo persistentes, opciones para compartir y colaboración en tiempo real desde el mismo ejecutor.
¿Cómo se utiliza este ejecutor?
Elige un entorno de ejecución, abre o crea un archivo, escribe el código y selecciona Ejecutar. El resultado aparece en el terminal; los usuarios que han iniciado sesión pueden conservar archivos en un espacio de trabajo, instalar bibliotecas y colaborar mediante elementos compartidos.
- Selecciona una versión y edita el archivo actual o abre otro archivo del espacio de trabajo.
- Ejecuta el código, introduce datos en el terminal cuando se soliciten y revisa el historial de ejecuciones guardado.
- Utiliza bibliotecas, herramientas del espacio de trabajo, opciones para compartir y el chat cuando la tarea requiera más de un fragmento.
💡 Conceptos básicos de Python y ejemplos que puedes probar arriba
1. Declarar variables y constantes
Python es de tipado dinámico, así que no necesitas declarar tipos explícitamente. No existe una palabra clave integrada para constantes, pero por convención las constantes se escriben en mayúsculas.
# Variables
x = 10
pi = 3.14
name = "Alice"
is_active = True
# Constantes (por convención)
MAX_USERS = 100
APP_NAME = "CodeUtility"
# Las constantes aún se pueden reasignar (no se aplica)
MAX_USERS = 200 # ⚠️ Técnicamente permitido, pero desaconsejado
2. Condicionales
Controla la lógica con bloques if, elif y else. En Python 3.10+, también puedes usar match-case como alternativa a switch-case.
# if-elif-else tradicional
x = 2
if x == 1:
print("Uno")
elif x == 2:
print("Dos")
else:
print("Otro")
Alternativa: match-case (Python 3.10+)
# Requiere Python 3.10+
x = 2
match x:
case 1:
print("Uno")
case 2:
print("Dos")
case _:
print("Otro")
3. Bucles
for se usa para iterar sobre secuencias; while se ejecuta mientras una condición sea verdadera.
for i in range(3):
print(i)
count = 3
while count > 0:
print(count)
count -= 1
4. Listas
Las listas son colecciones ordenadas y mutables. Puedes acceder a los elementos por índice.
fruits = ["apple", "banana"]
print(fruits[0])
print(len(fruits))
5. Manipulación de listas
Agrega, elimina, toma segmentos y revierte listas. Las comprensiones de listas permiten iterar de forma compacta.
fruits.append("cherry")
fruits.insert(1, "kiwi")
fruits.remove("banana")
fruits.pop()
print(fruits[1:3])
print(fruits[::-1])
squares = [x*x for x in range(5)]
6. Entrada/Salida por consola
Usa input() para leer del usuario y print() para mostrar salida.
Puedes imprimir múltiples líneas usando \n (carácter de nueva línea) o llamando a print() varias veces.
# Leer entrada
name = input("Ingresa tu nombre: ")
print("Hola", name)
# Imprimir múltiples líneas
print("Línea 1\nLínea 2\nLínea 3")
# O usa múltiples sentencias print
print("Línea A")
print("Línea B")
print("Línea C")
7. Funciones
Las funciones ayudan a organizar el código y permiten reutilizarlo. Usa parámetros y valores de retorno.
def greet(name):
return "Hola " + name
print(greet("Alice"))
8. Diccionarios
Almacenan pares clave-valor. Las claves son únicas y los valores se acceden mediante las claves.
person = {"name": "Bob", "age": 25}
print(person["name"])
print(person.get("email", "No proporcionado"))
9. Manejo de excepciones
Usa try y except para capturar y manejar errores de forma adecuada.
try:
x = 1 / 0
except ZeroDivisionError:
print("No se puede dividir por cero")
10. Entrada/Salida de archivos
Lee y escribe archivos usando open().
with open("data.txt", "w") as f:
f.write("Hola Mundo")
with open("data.txt", "r") as f:
print(f.read())
11. Manipulación de cadenas
Las cadenas de Python tienen métodos potentes como strip(), replace() y split().
text = " Hola Mundo "
print(text.strip())
print(text.upper())
print(text.replace("Hola", "Hola"))
print(text.split())
12. Clases y objetos
Define planos reutilizables con clases. Usa __init__ para inicializar objetos.
class Person:
def __init__(self, name):
self.name = name
def greet(self):
return "Hola, soy " + self.name
p = Person("Alice")
print(p.greet())
🐞 Cómo depurar código Python online
Usa el depurador Python online para encontrar errores lógicos sin instalar Python ni un IDE. La depuración funciona en modo Servidor con Python 3.10 a 3.13.
- Selecciona una versión de Python basada en servidor.
- Haz clic junto a un número de línea para añadir puntos de interrupción.
- Selecciona Depurar para iniciar el programa y pausarlo en el primer punto coincidente.
- Inspecciona la línea y las variables y usa Continuar, Paso por encima, Paso a paso o Salir.
- Selecciona Detener para finalizar la sesión.
Empieza con un ejemplo mínimo reproducible y coloca el punto de interrupción justo antes de que el valor sea inesperado. El modo Servidor también admite archivos del workspace y bibliotecas instaladas.