El Fizz Buzz Test es una pregunta clásica de entrevistas para candidatos a trabajos relacionados con programacion. El test basicamente es el siguiente:
Escribe un programa que imprima los numeros del 1 al 100. Pero ten en cuenta que para multiplos de tres debes imprimir “Fizz” en lugar de imprimir el número, y para los múltiplos de cinco imprimir “Buzz”. Por último, para números que son múltiplos de ambos números, tres y cinco, imprimir “FizzBuzz”.
Para solucionar el test vamos a necesitar combinar varias técnicas de programación que aprendimos en este curso como lo son los ciclos for y los condicionales.
El primer paso es entender como identificar si un número es múltiplo de tres y/o cinco y para esto vamos a usar la operación módulo, la cual nos sirve para calcular el residuo que resulta al dividir dos números, si al dividir un número n en tres y/o cinco su residuo es cero, significa que el número es múltiplo del divisor.
En este caso si n % 3 == 0 el número es múltiplo de tres, si n % 5 == 0 el número es múltiplo de 5. Para evaluar si un número es múltiplo de 3 y 5 al mismo tiempo solo basta con usar el operador lógico AND el cual evalua si las dos condiciones son verdaderas de la siguiente forma.
Con base en esto haremos un condicional anidado que nos permita evaluar las tres condiciones, hay que tener en cuenta que para que el programa funcione correctamente primero hay que evaluar la condicion en la cual el número es múltiplo de los dos números al mismo tiempo.
ifn % 5==0 and n % 3 ==0:
print("FizzBuzz")
elif n % 3 == 0:
print("Fizz")
elif n % 5 == 0:
print('Buzz')
else:
print(n)
Como se puede ver en el fragmento de código anterior estamos usando un condicional anidado en el cual usando la sentencia IF evaluamos la primer condición, de ser cierta se imprimirá el resultado “FizzBuzz”; deno ser cierta mediante la sentencia ELIF evaluaremos la segunda condiciónla cual imprimirá "Fizz"de ser cierta y de lo contrario evaluaremos la tercera condición para la cual imprimiremos “Buzz” si esta se cumple. Por último si ninguna de las tres condiciones anteriores resulta verdadera usaremos la sentencia ELSE para imprimir el número.
Una vez teniendo lalógica del condicional escrita solamente falta hacer un ciclo para evaluar uno a uno los números que necesitamos. En este caso usaremos el ciclo FOR el cual nos permite recorrer uno a uno un rango denúmeros dela siguiente forma:
forninrange(1,101):
En este caso le estamos diciendo al programa queen el conjunto denúmeros enteros del 1 al 101 ejecute una instrucción para cada uno de los números. Hay que tener en cuenta quela sentencia no va a evaluar el último número del rango, por esta razón estamos utilizando como límite superior el número 101.
El resultado final de nuestro programa recorre uno o a uno los números enteros del uno al 100 para los cuales va a evaluar los condicionales que definimos previamente e imprimir el resultado definido, quedando dela siguiente manera
forninrange(1,101):
ifn % 5==0 and n % 3 ==0:
print("FizzBuzz")
elif n % 3 == 0:
print("Fizz")
elif n % 5 == 0:
print('Buzz')
else:
print(n)
Al correr el código anterior se obtendrá el siguiente resultado:
12Fizz4Buzz
Fizz78FizzBuzz
11Fizz1314FizzBuzz1617Fizz19Buzz
Fizz2223FizzBuzz
26Fizz2829FizzBuzz3132Fizz34Buzz
Fizz3738FizzBuzz
41Fizz4344FizzBuzz4647Fizz49Buzz
Fizz5253FizzBuzz
56Fizz5859FizzBuzz6162Fizz64Buzz
Fizz6768FizzBuzz
71Fizz7374FizzBuzz7677Fizz79Buzz
Fizz8283FizzBuzz
86Fizz8889FizzBuzz9192Fizz94Buzz
Fizz9798FizzBuzz
Felicidades! eso es todo, conel tutorial anterior lograrás aprobar una de las preguntas de tu entrevista de programador enpython.