Pythonのススメ4

はじめに

Pythonでプログラムを書くにあたり、文法や言語仕様などの個人的なメモを記載する。
今回のネタは条件分岐と繰り返し。

条件分岐

条件分岐をする際はifを使う。
構成は以下の通り。
※ifにしろif-elifにしろ、if-elseまたはif-elif-elseにしろ、末尾に頃に「:」を付けることを忘れないこと。

条件分岐1

if (条件1):
    「条件1」がtrueだったときの処理。

条件分岐を複数指定したいときは以下のようにif-elifを使う。

条件分岐2

if (条件1):
    「条件1」がtrueだったときの処理。
elif (条件2):
    「条件2」がtrueだったときの処理。
・・・

ifまたはif-elifのいずれにも条件がマッチしなかったときに処理をしたい場合はelseを使う。

条件分岐3

if (条件1):
    「条件1」がtrueだったときの処理。
else:
    「条件1」にマッチしなかったときの処理。

条件分岐4

if (条件1):
    「条件1」がtrueだったときの処理。
elif (条件2):
    「条件2」がtrueだったときの処理。
else:
    「条件1」にも「条件2」にもマッチしなかったときの処理。

・AND条件を指定したい場合はandを使う。
 CやJavaの「&&」に相当する。

if 条件1 and 条件2:
    「条件1」と「条件2」の両方を満たすときの処理。

・OR条件を指定したい場合はorを使う。
 CやJavaの「||」に相当する。

if 条件1 or 条件2:
    「条件1」と「条件2」の少なくともどちらか片方を満たすときの処理。

繰り返し

繰り返しをする際はforを使う。
構成は以下の通り。
※末尾に頃に「:」を付けることを忘れないこと。

繰り返し

for 変数 range(範囲):
    何かしらの処理

例えば以下のように記載した場合、変数iに0~29の値の代入が30回行われる。
すなわち、30回処理が行われる。

繰り返し例1

for i range(30):
    何かしらの処理

これは、以下のように記載したときの動作と同じ。

繰り返し例2

for i range(0, 30):
    何かしらの処理

スタートを0ではなく1にしたい場合は以下のようにする。
この場合、1~29の29回、処理が繰り返される。

繰り返し例3

for i range(1, 30):
    何かしらの処理

繰り返しの処理では以下の文がよくつかわれる。
・break: 繰り返し処理を終える。
・continue: その回の処理を終了し、次の繰り返しを実行する。

サンプルプログラム

条件分岐と繰り返しを使ったFizzBuzzプログラムを以下に記す。
・仕様1: 1~30の数字を表示する。
・仕様2: 表示する数字が3で割り切れる場合は数字とともに「Fizz」を表示する。
・仕様3: 表示する数字が5で割り切れる場合は数字とともに「Buzz」を表示する。
・仕様4: 表示する数字が3と5の両方で割り切れる場合は数字とともに「FizzBuzz」を表示する。

FuzzBizzプログラム

for i in range(30):
    num = i + 1
    if num % 3 == 0 and num % 5 == 0:
        print(str(num) + ": FizzBuzz")
    elif num % 3 == 0:
        print(str(num) + ": Fizz")
    elif num % 5 == 0:
        print(str(num) + ": Buzz")
    else:
        print(str(num))

実行結果

1
2
3: Fizz
4
5: Buzz
6: Fizz
7
8
9: Fizz
10: Buzz
11
12: Fizz
13
14
15: FizzBuzz
16
17
18: Fizz
19
20: Buzz
21: Fizz
22
23
24: Fizz
25: Buzz
26
27: Fizz
28
29
30: FizzBuzz

終わりに

Pythonの条件分岐と繰り返しについて、サンプルプログラムを交えて記載した。
条件分岐と繰り返しは、プログラムの基本ともいえる。
これにより、今後Pythonでより実用的なプログラムを書くことができるようになる。
今後はコレクションなどについても記載していく。