Startup Data scientist Blog

データ分析系のテック情報を発信します

pythonを使ったFizzBuzz問題の攻略

コーディング面接でよくある質問であるFizzBuzz問題のプログラムを作成する

 

・1-100までの数字を出力するプログラムを書きなさい。

ただし、3の倍数の時は数字の代わりに'Fizz'と出力し、

5の倍数の時には数字の代わりに'Buzz'と出力する。

3と5の倍数の時には、'FizzBuzz'と出力するプログラムを記述しなさい。

 

※3の倍数か5の倍数かの判定は余剰計算(%)で求めることが出来ます。

割り切れる場合は0になるのでそれに注意して条件設定を行っていきます。

for i in range(1, 101):
    # 3 and 5の倍数の時
    if i % 3 == 0 and i % 5 ==0:
        print('FizzBuzzz')
    #3の倍数の時
    elif i % 3 == 0:
        print('Fizz')
    #5の倍数の時
    elif i % 5 == 0:
        print('Buzz')
    else:
        print(i)

>>>

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz

 

 

FizzBuzz問題を関数化する

今度はFizzBuzz問題を関数化させていきます。defを使うことで関数化させることが出来ます。Forを使い1から20までの数字をループさせ、FizzBuzzで表示させていきます。

 

def fizzbuzz():
    for i in range(0, 21):
        if i % 3 == 0 and i % 5 == 0:
            print('FizzBuzz')
        elif i % 3 == 0:
            print('Fizz')
        elif i % 5 == 0:
            print('Buzz')
        else:
            print(i)
    return
       
number = fizzbuzz()
print(number)

>>>

FizzBuzz
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
None