Parece que deseas realizar un análisis sobre un conjunto de números y aplicar ciertas condiciones para generar una selección de números aleatorios. Sin embargo, el código que has proporcionado tiene algunos errores de sintaxis y lógica que deben corregirse. A continuación, te muestro cómo podrías estructurar el código para lograr lo que buscas, además de mostrar los datos que has proporcionado.
Código Corregido
import random
# Funciones auxiliares
def es_par(numero):
return numero % 2 == 0
def es_impar(numero):
return numero % 2 != 0
def es_primo(numero):
if numero < 2:
return False
for i in range(2, int(numero**0.5) + 1):
if numero % i == 0:
return False
return True
def cantidad_pares(numeros):
return sum(1 for n in numeros if es_par(n))
def cantidad_impares(numeros):
return sum(1 for n in numeros if es_impar(n))
# Generar números seleccionados
numeros_seleccionados = []
while len(numeros_seleccionados) < 6:
numero = random.randint(0, 45)
if numero not in numeros_seleccionados:
if (es_par(numero) and cantidad_pares(numeros_seleccionados) < 3) or (es_impar(numero) and cantidad_impares(numeros_seleccionados) < 3):
numeros_seleccionados.append(numero)
# Mostrar los números seleccionados
print("Números seleccionados:", numeros_seleccionados)
# Datos proporcionados
datos = {
"Tradicional": {
"Nro": [6, 31, 2, 10, 39, 27, 19, 41, 44, 4],
"Veces": [373, 353, 341, 340, 339, 336, 334, 334, 334, 333]
},
"2da Vuelta": {
"Nro": [42, 5, 8, 33, 4, 0, 2, 6, 36, 19],
"Veces": [345, 339, 336, 335, 332, 331, 331, 330, 330, 328]
},
"Revancha": {
"Nro": [1, 10, 9, 7, 37, 6, 2, 11, 23, 43],
"Veces": [360, 349, 348, 347, 347, 345, 344, 342, 339, 338]
},
"Siempre Sale": {
"Nro": [2, 9, 10, 1, 22, 29, 34, 15, 32, 18],
"Veces": [361, 356, 353, 343, 341, 334, 333, 332, 330, 330]
},
"Todos": {
"Nro": [2, 6, 10, 9, 1, 4, 19, 8, 22, 5],
"Veces": [1377, 1373, 1367, 1344, 1324, 1305, 1305, 1304, 1301, 1294]
}
}
# Función para mostrar los datos
def mostrar_datos(datos):
for categoria, valores in datos.items():
print(f"\n{categoria}:")
for nro, veces in zip(valores["Nro"], valores["Veces"]):
print(f"Nro: {nro}, Veces: {veces}")
# Mostrar los datos
mostrar_datos(datos)
Explicación del Código
-
Funciones Auxiliares: Se definen funciones para verificar si un número es par, impar o primo, así como para contar cuántos números pares e impares hay en la lista de seleccionados.
-
Generación de Números: Se utiliza un bucle while
para generar números aleatorios entre 0 y 45, asegurando que no se repitan y que se cumplan las condiciones de paridad.
-
Mostrar Números Seleccionados: Al final, se imprimen los números seleccionados.
-
Mostrar Datos: Se define una función para mostrar los datos proporcionados en un formato legible.
Ejecución
Al ejecutar este código, obtendrás un conjunto de números seleccionados aleatoriamente que cumplen con las condiciones especificadas, así como la visualización de los datos que proporcionaste.