条件分岐とループ
共通の特徴
多言語だと「{」から「}」までをブロックとしたり、「if」~「end」をブロックとする場合が多いですが、Pythonでは文のインデントだけでブロックを表します。
# coding: utf-8 str = "test" if str == "test": print("これはテストです") print("if文の条件とは関係なく実行されます")
出力結果
test
if文の条件とは関係なく実行されます
if文
二岐分岐の場合、以下のように記述します。
# coding: utf-8 str = "test" if str == "test": print("これはテストです") else: print("これはテストではありません")
出力結果
これはテストです
多岐分岐の場合、以下のように記述します。
(pythonでは "else if" 文を "elif" と省略して記述します。)
# coding: utf-8 str = "オレンジ" if str == "アップル": print("これはアップルです") elif str == "オレンジ": print("これはオレンジです") elif str == "バナナ": print("これはバナナです") elif str == "メロン": print("これはメロンです") else: print("これは果物ではありません")
出力結果
これはオレンジです
for文
「for」文はシーケンス型のオブジェクトから要素を順に変数に代入し、要素の数だけ繰り返しを行います。
シーケンス型とは文字列やリストのように順序のある要素の集まりです。他に、Unicode文字列、タプル、xrangeオブジェクトがあります。
文字列を指定した場合、1文字ずつ変数に代入される点に注意してください。
# coding: utf-8 for str in "start": print(str) print "End"
出力結果
s t a r t End
配列の要素を順番に取り出してループさせる場合、以下のように記述します。
# coding: utf-8 for number in [1, 2, 3, 4, 5]: print("number = " + str(number)) print("End")
出力結果
number = 1 number = 2 number = 3 number = 4 number = 5 End
またループを強制終了するbreak、スキップするcontinueがあります。
break文
break文
# coding: utf-8 for str in ["apple", "melon", "orange", "banana"]: if str == "orange": break print(str) print "End"
出力結果
apple melon End
continue文
# coding: utf-8 for str in ["apple", "melon", "orange", "banana"]: if str == "orange": continue print str print "End"
出力結果
apple melon banana End
else文
pythonではfor文、while文の最後にelseを記述すると、「ループ内でbreakが実行されていなければ」else文の中が実行されます。
pythonではfor文、while文の最後にelseを記述すると、「ループ内でbreakが実行されていなければ」else文の中が実行されます。
# coding: utf-8 for str in ["apple", "melon", "orange", "banana"]: if str == "test": break print str else: print "else" print "End"
出力結果
apple melon orange banana else End
オブジェクトの要素数分繰り返すのではなく、ある特定の回数分繰り返したい場合は、range関数が便利です。
sum = 0 for num in range(0, 10): sum += num; print("sum = " + str(sum)) #または sum = 0 for num in range(10): sum += num; print("sum = " + str(sum))
出力結果
55
while文
「while」文では、条件式が真(true)の間繰り返しを行います。
break、continue、elseの仕様はfor文と同じなので割愛します。
number = 0 while number < 100: print "number = " + str(number) number += 1 print "End"
出力結果
number = 1 number = 2 number = 3 … number = 100