FizzBuzz Challenge Usando list comprehension!

carlomonroy

CarloMonroy

Posted on May 30, 2022

FizzBuzz Challenge Usando list comprehension!

Si eres programador o estas aprendiendo a programar seguramente te has encontrado con el FizzBuzz Challenge o lo encontraras.
A continuaci贸n hablaremos acerca de este reto y lo implementaremos utilizando list comprehension de python!

Que es FizzBuzz Challenge
Se nos pide escribir un programa el cual nos imprima n cantidad de numeros.
Si el numero es multiplo de 3 imprimir Fizz
Si el numero es multiplo de 5 imprimir Buzz
Si el numero es multiplo de 3 y de 5 imprimir FuzzBuzz
Si el numero no es multiplo de ninguno imprimir el numero

Implementaci贸n regular FizzBuzz
Para entender como funciona nuestra list comprehension primero necesitamos entender como necesita funcionar nuestro programa.
La forma mas sencilla de implementarlo es con un for loop y con expresiones if

Primero necesitamos iterar por la cantidad de numeros
for i in range(1, 15):
En cada iteracion revisaremos nuestras condiciones utilizando nuestro operador modulus %
Podemos manejar este operador de forma booleana ya que cuando el resultado de el modulo es 0 nos regresa False.
Podemos invertir nuestro resultado booleano utilizando not y de esta forma cuando nuestro numero si sea divisible nos regresara True, Esta logica la podemos implementar dentro de nuestro for loop de la siguiente forma:

for i in range(1, 16):
    if not (i%3 and not i%5):
        print("FizzBuzz")
    elif not (i%3):
        print("Fizz")
    elif not (i%5):
        print("Buzz")
    else:
        print(i)

Enter fullscreen mode Exit fullscreen mode

Nuestra respuesta en consola seria:
FizzBuzz console log
Felicidades, ya completaste el FizzBuzz Challenge.

FizzBuzz con List Comprehension
Para poder aplicar nuestro list comprehension debemos recordar que al utilizar el operador * se repite esa cantidad de veces.
De esta forma podemos utilizar x = "string"*(not i%5):
Cuando el Resultado de nuestra evaluaci贸n sea False nuestro string no se mostrara.
primero evaluaremos nuestras condiciones.
Ejemplo:
"Fizz"*(not i%3) Si i==2 entonces nuestra evaluacion seria False, Despues evaluamos con nuestro operador * y al ser falso ese "String" no se estaria concatenando.

de esta forma:

FizzBuzzList = ["Fizz"*(not i%3) + "Buzz"*(not i%5) or i ]
Enter fullscreen mode Exit fullscreen mode

Hasta aqui tenemos la parte logica de nuestro list comprehension.
Por cada iteracion pasaremos nuestro string en el que si no se cumple nuestra condicion no se concatena y cuando no se cumple ninguna condicion se concatena el numero de nuestra iteracion.

Ahora solo nos falta agregar nuestro for loop for i in range(1, 16), en range() nuestro primer parametro es inclusivo y el segundo parametro es exclusivo.
De esta forma si necesitamos numeros de el 1 al 15 debemos ingresarle los parametros 1, 16

Nuestro List Comprehension final quedaria de la siguiente forma:

FizzBuzz = ["Fizz"*(not i%3) + "Buzz"*(not i%5) or i for i in range(1, 16)]
Enter fullscreen mode Exit fullscreen mode

Espero les haya sigo de ayuda!
Happy Hacking!
Carlo Monroy

馃挅 馃挭 馃檯 馃毄
carlomonroy
CarloMonroy

Posted on May 30, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related