En este post de programación en Python vamos a resolver un ejercicio: se trata de solicitar 3 números al usuario, validarlos y luego imprimirlos de manera ordenada (de menor a mayor). También vamos a validar que los números no se repitan.
Para ello vamos a usar print e input, además del método de la burbuja.
Solicitar 3 números
Lo que tenemos que hacer es un ciclo while con un contador. El ciclo será infinito y se romperá cuando el usuario haya ingresado los 3 números. Recuerda que también se va a validar que los números no sean repetidos:
numeros = []
contador = 1
# Mientras no se hayan leído 3 números...
while len(numeros) < 3:
# Hacemos un ciclo infinito que se romperá solo cuando estén los tres números ingresados correctamente:
numero_como_cadena = input("Ingrese el número " + str(contador) + ": ")
# Intentamos "parsear" el número
try:
numero = float(numero_como_cadena)
# Si pasamos lo de arriba, hacemos otra comprobación: buscamos si el número existe
if numero in numeros:
print("El número ya existe")
else:
# Si todo es correcto, agregamos el número al arreglo
numeros.append(numero)
# Y aumentamos el contador
contador = contador + 1
except:
print("Número no válido")
En este caso comprobamos si el valor existe en el arreglo, y en caso de que así sea, lo indicamos. Si todo es correcto, agregamos el número al arreglo o lista.
Ordenar números
Debido a que tenemos los números en un arreglo, podemos ordenarlos usando algo simple como el método de la burbuja. Queda así:
# Ahora ya tenemos los 3 números, vamos a ordenarlos con el método de la burbuja
for i in numeros:
for j in range(len(numeros) - 1):
if numeros[j] > numeros[j+1]:
numeros[j], numeros[j+1] = numeros[j+1], numeros[j]
# Ya están ordenados. Los imprimimos
for numero in numeros:
print(numero)
Al terminar de ordenar los números, el arreglo ya estará en el orden correcto. Por lo tanto simplemente procedemos a imprimir cada valor.
Poniendo todo junto
El código completo queda como se ve a continuación:
numeros = []
contador = 1
# Mientras no se hayan leído 3 números...
while len(numeros) < 3:
# Hacemos un ciclo infinito que se romperá solo cuando estén los tres números ingresados correctamente:
numero_como_cadena = input("Ingrese el número " + str(contador) + ": ")
# Intentamos "parsear" el número
try:
numero = float(numero_como_cadena)
# Si pasamos lo de arriba, hacemos otra comprobación: buscamos si el número existe
if numero in numeros:
print("El número ya existe")
else:
# Si todo es correcto, agregamos el número al arreglo
numeros.append(numero)
# Y aumentamos el contador
contador = contador + 1
except:
print("Número no válido")
# Ahora ya tenemos los 3 números, vamos a ordenarlos con el método de la burbuja
for i in numeros:
for j in range(len(numeros) - 1):
if numeros[j] > numeros[j+1]:
numeros[j], numeros[j+1] = numeros[j+1], numeros[j]
# Ya están ordenados. Los imprimimos
for numero in numeros:
print(numero)