teaching:progappchim:fizz_buzz

Fizz buzz

Fizz buzz est un jeu de comptage et de divisibilité conçu pour des enfants. Les joueurs comptent à tour de rôle en incrémentant, partant de 1, et remplaçant chaque nombre divisible par 3 par le mot “fizz”, et chaque mot divisible par 5 par le mot “buzz”.

Énoncé informatique classique : https://www.codeeval.com/browse/1/. Il s'agit du premier des problèmes dans la catégorie “easy”.

Solution :

fizz_buzz.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
https://www.codeeval.com/open_challenges/1/ : Fizz Buzz
 
Read X, Y,N : count from 1 until N.
Any number divisible by X is replaced by the word fizz, and any divisible by Y
by the word buzz. Numbers divisible by both become fizz buzz.
"""
 
if __name__ == "__main__":
    print('Introduce X, Y, N separated by commas')
    inp =  input().split(',')
    X, Y, N = int(inp[0].strip()), int(inp[1].strip()), int(inp[2].strip())
    print(X, Y, N)
    c = ""
    for i in range(1,N+1):
        if i % X == 0:
            c += 'fizz'
        if  i % Y == 0:
            c += 'buzz'
        if i % X != 0 and i % Y != 0:
            c += str(i)
        c += " "
    print(c.rstrip())

Pour adapter le code à la lecture sur le site CodeEval, il est nécessaire de lire différents triplets (nombres séparés par des espaces) dans des lignes successives d'un fichier et d'ajouter une structure répétitive pour traiter toutes ces lignes :

import sys
 
if __name__=="__main__":
    fn = "easy-001-Fizz_Buzz-01.txt"
    with open(fn, 'r') as f:
        # read all lines using .read
        lis = f.read().strip().splitlines()
    for li in lis:
        v = li.split()
        X, Y, N = int(v[0]), int(v[1]), int(v[2])
        ...
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/fizz_buzz.txt
  • Dernière modification : 2017/02/28 14:35
  • de villersd