Advertisement
Guest User

fizzbuzz.py

a guest
Dec 6th, 2010
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.17 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. """
  5. Problema: FizzBuzz
  6. - Sempre que um número for múltiplo de 3, não exibe o número e exibe "Fizz";
  7. - Sempre que um número for múltiplo de 5, não exibe o número e exibe "Buzz";
  8. - Sempre que um número contiver 3, não exibe o número e exibe "Fizz";
  9. - Sempre que um número contiver 5, não exibe o número e exibe "Buzz";
  10. - Se o número for múltiplo de 3 E 5 ao mesmo tempo, exibe "FizzBuzz";
  11. """
  12. import unittest
  13.  
  14. def efioubu(n,s):
  15.     num_string = str(n)
  16.     if n % s == 0 or num_string.count(str(s)) > 0:
  17.         return True
  18.  
  19. def efizzbuzz(n,f,b):
  20.     if efioubu(n,f) and efioubu(n,b):
  21.         return True
  22.  
  23. def fizzbuzz(n):
  24.     fi = 3
  25.     bu = 5
  26.     resultado = str(n)
  27.  
  28.     if efizzbuzz(n,fi,bu):
  29.         return "FizzBuzz"
  30.  
  31.     elif efioubu(n,fi):
  32.         return "Fizz"
  33.  
  34.     elif efioubu(n,bu):
  35.         return "Buzz"
  36.  
  37.     return resultado
  38.  
  39. class testa_fizzbuzz(unittest.TestCase):
  40.  
  41.     def teste_tres(self):
  42.         self.assertEqual(fizzbuzz(3), "Fizz")
  43.  
  44.     def teste_quatro(self):
  45.         self.assertEqual(fizzbuzz(4), "4")
  46.  
  47.     def teste_cinco(self):
  48.         self.assertEqual(fizzbuzz(5), "Buzz")
  49.  
  50.     def teste_seis(self):
  51.         self.assertEqual(fizzbuzz(6), "Fizz")
  52.  
  53.     def teste_sete(self):
  54.         self.assertEqual(fizzbuzz(7), "7")
  55.  
  56.     def teste_treze(self):
  57.         self.assertEqual(fizzbuzz(13),"Fizz")
  58.  
  59.     def teste_quinze(self):
  60.         self.assertEqual(fizzbuzz(15), "FizzBuzz")
  61.  
  62.     def teste_vinte_cinco(self):
  63.         self.assertEqual(fizzbuzz(25), "Buzz")
  64.  
  65.     def teste_vinte_nove(self):
  66.         self.assertEqual(fizzbuzz(29), "29")
  67.  
  68.     def teste_trinta(self):
  69.         self.assertEqual(fizzbuzz(30), "FizzBuzz")
  70.  
  71.     def teste_trinta_um(self):
  72.         self.assertEqual(fizzbuzz(31), "Fizz")
  73.  
  74.     def teste_cinquenta_dois(self):
  75.         self.assertEqual(fizzbuzz(52), "Buzz")
  76.  
  77.     def teste_cinquenta_tres(self):
  78.         self.assertEqual(fizzbuzz(53), "FizzBuzz")
  79.  
  80.     def teste_cinquenta_quatro(self):
  81.         self.assertEqual(fizzbuzz(54), "FizzBuzz")
  82.  
  83.     def teste_cinquenta_cinco(self):
  84.         self.assertEqual(fizzbuzz(55), "Buzz")
  85.  
  86. unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement