【Python】条件分岐と繰り返し処理を使ってみよう!

Pythonロゴ

Pythonには条件分岐のif文や、繰り返し処理のwhile文, for文 があります。
動作について再確認をしたいと思います。
PHPではswitch文や、foreach文がありますがPythonにはありません。

条件分岐

if文

条件式の内容に対して、True(真)/False(偽)の判定を行い判定に合わせて処理をおこないます。プログラムの書き方は下記のようになります。

if 条件式 :
    print('Trueの場合はこちら')
}

if 条件式 :
    print('Trueの場合はこちら')
else :
    print('Falseの場合はこちら') 
}

if 条件式1 :
    print('条件式1がTrueの場合はこちら')
elif 条件式2
    print('条件式1がFalse、条件式2がTrueの場合はこちら')
else :
    print('両条件ともFalseの場合はこちら') 
}
tmp = 'AAA'
if tmp == 'AAA':
    print('内容はAAAです')

# 結果 内容はAAAです

if tmp == 'BBB':
    print('内容はBBBです')
else:
    print('内容はその他です')

# 結果 内容はその他です

if tmp == 'BBB':
    print('内容はBBBです')
elif tmp == 'AAA':
    print('内容はAAAです')
else:
    print('内容はその他です')

# 内容はAAAです

Pythonではif文等でプログラム処理を分岐させる際にどこまでが範囲か判定する方法がインデントにより判定をされます。
PHPと違う点になりますので注意になります。

繰り返し文

while文

条件式の内容がFalse(偽)になるまで繰り返し処理を行います。
プログラムの書き方を間違えると条件がFalseにならず無限ループをする場合があります。

while 条件式:
    print('条件式がfalseになるまで処理を繰り返し')
num = 0
while num < 4:
    num += 1
    print(num)

# 結果
# 1
# 2
# 3
# 4

breakでループを抜ける

ループ処理の中でbreak文を使用することでループを抜けることができます。

num = 0
while num < 4:
    num += 1
    if num == 2:
        break
    print(num)

# 結果
# 1   <= 2と3はbreakにより出力されなくなりました。

continueでループをスキップ

ループ処理の中でcontinue文を使用することで指定のループをスキップして次のループ処理にはいることができます。

num = 0
while num < 4:
    num += 1
    if num == 2:
        continue
    print(num)

# 結果
# 1
# 3   <= 2のループがスキップされています
# 4

for文

配列または文字列、辞書型を渡すと変数に要素を代入しながら繰り返し処理を行います。

for 変数 in 配列または文字列:
    print(変数)

配列を使った場合

array = ['a', 'b', 'c']
for key in array:
    print(key)

# 結果
# a
# b
# c

文字列を使った場合

str = 'abc'
for key in str:
    print(key)

# 結果
# a
# b
# c

辞書型を使った場合

array = {'a': '100', 'b': '200', 'c': '300'}
for key, value in array.items():
    print(key + ' : ' + value)

# 結果
# a : 100
# b : 200
# c : 300

breakでループを抜ける

array = ['a', 'b', 'c']
for key in array:
    if key == 'b':
        break
    print(key)

# 結果
# a   <= bとcはbreakにより出力されなくなりました。

continueでループをスキップ

array = ['a', 'b', 'c']
for key in array:
    if key == 'b':
        continue
    print(key)

# 結果
# a
# c   <= bのループがスキップされています

zip関数で複数配列処理

複数の配列を同時に出力したい場合、zip関数を利用する事でシンプルに要素の出力が可能です。

array1 = ['a', 'b', 'c']
array2 = ['1', '2', '3']
for str1, str2 in zip(array1, array2):
    print(str1 + ' : ' + str2)

# 結果
# a : 1
# b : 2
# c : 3

enumerate関数を使い配列出力に連番を追加

for i, key in enumerate(['a', 'b', 'c']):
    print(str(i) + ' : ' + key)  # iが数値のため文字列にキャスト

# 結果
# 0 : a
# 1 : b
# 2 : c

まとめ

今回は条件分岐と繰り返し処理に関して確認をしました。
次回は関数定義に関して確認をしていきます。

サンプルプログラム

こちらの記事で作成したプログラムはGitHub環境にアップしております。
下記からダウンロードいただけます。

参考 ifloop.py スクリプトGitHub python-beginner