Pythonのif文について
Python のif文は他の言語と少し書き方が違います。
Python の特徴はインデントを使って、if節とelse節を記述します。
Python のインデントには特別の意味があり、インデントされている文を同じブロックとして扱います。
そのため、インデントの数が違うと別のブロックとして認識してしまいます。
他の言語からPyhonを学習する場合に少し戸惑うと思いますが慣れるようにしましょう。
Pythonの比較演算子
if文では必ず条件判定を行います。その際比較演算子を使うことになります。
比較演算子は2つの値を比較してブール値を返すものです。
ブール値には「True」と「False」があります。
先頭文字が大文字であることに注意してください。
訂正: 比較演算子の説明でビデオの中で <> が出てきますが間違いです。これはPython3では使用できませんのでご注意ください。
演算子 | 意味 |
---|---|
a == b | a が b と等しい |
a != b | a が b と異なる |
a < b | a が b よりも小さい |
a > b | a が b よりも大きい |
a <= b | a が b 以下である |
a >= b | a が b 以上である |
a is b | a が b と等しい |
a is not b | a が b と異なる |
a in b | a が b に含まれる |
a not in b | a が b に含まれない |
JavaScriptなどで使用される、「a === b」 は無いので注意してください。Pythonの場合は、「a == b」が「a === b」と同等になります。つまり、左辺と右辺の型も同じでなければなりません。
Pythonでのif文の記述方法
コードブロック
Pythonではコードを1行以上のまとまりにしてブロックとすることができます。
ブロックの区間はコードの字下げで指定します。
字下げとは行の先頭に何個かのスペースを入れることです。
Pythonの標準コードスタイルでは4文字スペースを入れます。
ただし、Googleのスタイルは2文字です。従ってColaboratoryは2文字になってます。
ブロックのルール
- ブロックは字下げが増えると開始する
- ブロックの中に他のブロックを含めることができる
- 字下げがなくなるか、上位ブロックの字下げに戻るとブロックは終了する
if文の記述
フロー制御文は全てコロン(:)で終わり、次にコードブロック(節)が続きます。
if文の構成
if 条件式(TrueかFalseで評価される):
コードブロック(if節)
Pythonのif文はコロンとインデントを使って記述します。 インデントを間違うとエラーになりますので注意してください。
[条件式がTrueのときに行う処理]
elif [条件式2]:
[elifの条件式2がTrueのときに行う処理]
else:
[if文の条件式1もelifの条件式2もどちらもFalseのときに行う処理]
if文の例
age = 20 if age == 20: print('成人式') print('age:',age)
結果
成人式
age: 20
else文
if文の条件にマッチした場合は、if節に処理内容を記述しましたが、条件にマッチしなかった場合に何らか別の処理を施したい場合にelse文を使います。
else文は「それ以外の場合」という意味があります。
従ってelse文には条件式は必要ありません。
- else:
- 次の行に字下げしたコードブロック(else節)
if else 文の例
age = 15 if age == 20: print('成人式') else: print('成人式ではない') print('age:',age)
結果
成人式ではない
age: 15
elif文
場合によっては、単純にifの条件とelseだけで切り分けられない場合があります。
たくさんの条件があって、それぞれに実行する内容が違う場合です。
このような時には、elif文を使用します。
- elif 条件式:
- 次の行に字下げしたコードのブロック(elif節)
elif文を使った例
age = 60 if age == 20: print('成人式') elif age < 20: print('未成年') print('age:',age)
結果
age: 60
elif,elseを加えた例
age = 60 if age == 20: print('成人式') elif age < 20: print('未成年') else: print('成人') print('age:',age)
結果
成人
age: 60
PythonにはSwitch文はありませんので、if文でelifやelseを使って表現するようにします。
参考になった書籍
プログラミングを少しでも経験がありPython の文法を学習する場合は、「入門 Python 3」が良いと思います。長く使えます。
「退屈なことはPython にやらせよう」はオブジェクト指向の解説がないです。代わりにPythonを使った便利な実例が初心者には嬉しい内容です。正規表現から、簡単なスクレイピング 、画像操作などあります。ただし、中級者以上には少し物足りないかもしれません。
Pythonサンプルのダウンロード
ここでダウンロードする「if.ipynb」ファイルは、このPython動画で使用したものです。
Python入門一覧
- Python入門 クラスの継承とオーバーライド(動画あり)
- Python入門 オブジェクト指向について、クラスの作り方(動画あり)
- Python入門 lambda関数の使い方、map関数の使い方(動画あり)
- Python入門 位置引数、キーワード引数、デフォルト引数、便利な引数の使い方(動画あり)
- Python入門 グローバル変数とローカル変数(動画あり)
- Python入門 モジュールのインポートとrandomモジュール(動画あり)
- Python入門 関数の定義方法(動画あり)
- Python入門 内包表記(動画あり)
- Python入門 zip関数(動画あり)
- Python入門 for in文の活用(動画あり)
- Python入門 for in文の基本(動画あり)
- Python入門 三項演算子(動画あり)
- Python入門 if文の使い方2 while文の使い方(動画あり)
- Python入門 if文の使い方(動画あり)
- Python入門 浅いコピーと深いコピー(動画あり)
- Python入門 参照渡し(動画あり)
- Python入門 集合(動画あり)
- Python 入門 辞書(動画あり)
- Python 入門 タプルについて(動画あり)
- Python入門 リストのメソッド(動画あり)
- Python入門 リストのスライス(動画あり)
- Python入門 リスト
- Python入門 BMI課題 (動画あり)
- Python入門 文字列の連結とフォーマット1(動画あり)
- Python入門 文字列のフォーマット2(動画あり)
- Python入門 エスケープと型変換とinput()の使い方(動画あり)
- Python入門 pep8(動画あり)
- Python入門 変数の練習(動画あり)
- Python入門 変数(動画あり)
- Python入門 文字列(動画あり)
- Python入門 演算子(動画あり)
- Python入門 Python をはじめよう! (動画あり)
コメントを投稿するにはログインしてください。