より複雑な処理を行うためには、「条件分岐」が必要になってきます。基本的なif文をはじめ、インデントを使った記述方法に慣れていきましょう。
>>> if str == "kura": # 条件の後に「:」を入れる ... print "lab" # インデントに注意(タブでもスペースでもよい) ... print "python" # 上のprintと同じ位置に合わせる ... # インタラクティブシェルの時は改行で実行
>>> if str == "kura":
# 条件の後に「:」を入れる
... print "lab"
# インデントに注意(タブでもスペースでもよい)
... print "python"
# 上のprintと同じ位置に合わせる
...
# インタラクティブシェルの時は改行で実行
「True」または「False」のbool型の結果を返します。
JavaやCのように&&,||は使用できません。また、優先順位に注意。
CやJavaではif文と同じような条件分岐に次のような方法があります。
<条件> ? <真の場合の値> : <偽の場合の値>
Pythonにも以下のような条件演算子を用いることができます。
Pythonでは「and / or」をつかって以下のように書くことができます。
... print a % 2 == 0 and (a,) or "other"
タプルをつかっているのは「aが偽のときに"other"が代入される」ことを避けるためです。タプルを使用しないと以下のように0のときに"other"が代入されてしまっています。
... print a % 2 == 0 and a or "other"
Python2.5では条件演算子は、CやJavaのものとは順序が異なっているので注意してください。
<正の場合の値> if <条件式> else <偽の場合の値>
... print a if a % 2 == 0 else "other"
ある文字列中に対象の文字列が含まれるか調べることができます。
>>> a = "kokakokarakurakerara"
シーケンスを利用して辞書のキーや値の検索をすることができます。
>>> dic = {"kura":"lab", "ku":"ra"}
>>> dic = {"kura":"lab", "ku":"ra"}>>> if "lab" in dic.values():
>>> if "lab" in dic.values():
if文で使用する条件には以下の内容も利用することができます。 真(True)偽(Flase) 0以外の数値空でない文字列要素のあるシーケンス要素を持つ辞書 0空の文字列("")空のシーケンス([], ())空の辞書({})