#はじめに
pythonでfizz-buzz的なアルゴリズムを作ったので投稿します。
#前提
2の倍数の時は〜は偶数です
3の倍数の時は〜は3の倍数です
6の倍数の時は〜は6の倍数です
それ以外は〜はそれ以外の数です
と表示させます。
いくつまで判定させるかは、最初に入力できるようにします。
#実行
まずは倍数を判定するための関数を作ります。
def sample(x):
if (x % 3 == 0 and x % 2 ==0):
print(x,"は6の倍数です")
elif (x % 3 == 0):
print(x,"は3の倍数です")
elif (x % 2 == 0):
print(x,"は偶数です")
else:
print(x,"はそれ以外の数です")
if
やelse
の行の最後には:
がつく事、
elsifではなくelif
な事、
&&ではなくand
を使っていることに注意が必要ですが、
それ以外はrubyと大きな違いはありません。
次に、表示回数を入力するようにします。
print("いくつまで表示しますか?")
y = int(input())
入力だけならy = input()
でも良さそうですが、数字として判定されなかったのでこういう書き方です。
最後に、入力した回数分、倍数の判定を行うようにします。
for x in range(1, y + 1):
sample(x)
実行回数はrange(1, y + 1)
で決まります。
ここでは、1から先ほど入力したyまでの全ての整数について、sample(x)を行うという処理になります。
sample(x)は、最初に定義した関数を呼び出すということです。
全体のコードは次の通りとなります。
# coding:utf-8
import sys
def sample(x):
if (x % 3 == 0 and x % 2 ==0):
print(x,"は6の倍数です")
elif (x % 3 == 0):
print(x,"は3の倍数です")
elif (x % 2 == 0):
print(x,"は偶数です")
else:
print(x,"はそれ以外の数です")
print("いくつまで表示しますか?")
y = int(input())
for x in range(1, y + 1):
sample(x)