0
0

More than 3 years have passed since last update.

Pythonの基本箇所についての復習(FizzBuzz)

Last updated at Posted at 2020-03-21

はじめに

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,"はそれ以外の数です")

ifelseの行の最後には:がつく事、
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)
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0