Es increíble lo potente que puede ser Python usando solo los elementos fundamentales. Te comparto que aprendí.
.
Un número capicúa es un número que es igual si lo lees de derecha a izquierda que de izquierda a derecha.
.
Te comparto los siguientes ejemplos:
12321, 100001, 3, 121
.
Vamos a hacer un programa que genere números aleatorios entre el 10 (para hacerlo interesante) y 1,000 (para que sea más probable obtenerlos).
Primero vamos a pedir al usuario que elija la cantidad de números y para asegurarse que ingrese un número, voy a usar un ciclo WHILE:
whilenot quantity.isdigit() :
quantity = input("Ingresa la catidad de núemeros a generar: ")
ifnot quantity.isdigit():
print("Ingresa un número razonable!!\n")
.
Después que ingrese una cantidad, vamos a generar esos números de forma aleatoria:
numbers = []
for element inrange(quantity):
numbers.append(str(random.randint( 10, 1000) ) )
.
Ahora, es momento de validar cada uno de los elementos y nos vamos a quedar solo con los que son capicúas:
capicuas = []
for elementin numbers:
ifelement == element[::-1]:
capicuas.append(element)
.
Y solo imprimimos la lista de capicúas si es que la lista no está vacía.
.
Te comparto el código completo:
.
import randomwhile True:
quantity = "not a number"whilenot quantity.isdigit() :
quantity = input("Ingresa la catidad de núemeros a generar: ")
ifnot quantity.isdigit():
print("Ingresa un número razonable!!\n")
quantity = int(quantity)
numbers = []
for element inrange(quantity):
numbers.append(str(random.randint( 10, 1000) ) )
print("\nElementos generados aleatoriamente:")
if quantity > 50:
print("\nSon muchos, pero mira los primeros 50 números:")
print(numbers[:50], "\n")
capicuas = []
for element in numbers:
if element == element[::-1]:
capicuas.append(element)
num_capicuas = len(capicuas)
if num_capicuas > 0:
print("Sólo éstos números son capicúas:")
print(capicuas)
breakelse:
print("No se encontraron números capicúas, intenta nuevamente...\n\n")