場合によって処理を分ける | Python独学ならTech-Joho(10)

Python独学ならTech-Joho TOP > Python入門カリキュラム > 場合によって処理を分ける

If文とは

>や<といった演算子を使ってPythonに式を渡すと、与えられた条件式が成り立つときはTrue(真)、成立しないときはFalse(偽)が返ってきます。
if文は、この診断結果によって、プログラムの流れを変化させることができるものです。

例えば、変数suujiが2より大きいと’2より大きい’、小さいと’2より小さい’と表示するプログラムは以下になります。(下の黒い欄に1行ずついれてみてください。)

>>> suuji = 1
>>> if suuji > 2:
...   print('2より大きい')
... else:
...   print('2より小さい')
... 
'2より小さい'

if suuji > 2:を入れると、>>>となっていたところが…と変化します。
最後の(‘2より小さい’)の行のあとは、1行何もいれないままエンターキーを押して改行してください。

suujiは1なので、常に’2より小さい’が表示されるはずです。

ifの練習1

上の例で、suujiを2, 3, 4, 5にして実行してみてください。何が表示されますか?

値がその都度変わるものを使わないと、if文のありがたさはわかりません。
ユーザの入力を受け付けるinput関数を使う例をみてみましょう。

input関数の使い方はこちらに書いてあります。

>>> nyuuryoku = input('数字を入力して下さい')
>>> suuji = int(nyuuryoku)
>>> if suuji > 2:
...   print('2より大きい')
... else:
...   print('2より小さい')
... 

 


else

if のあとに書く、条件が成立しなかった時に、別の処理が実行させるようにするのが、elseです。
上と同じ例ですが、もう一度見て下さい。

>>> suuji = 1
>>> if suuji > 2:
...   print('2より大きい')
... else:
...   print('2より小さい')
... 
'2より小さい'

suujiという変数に代入されたのは、1です。
ifの後にある条件は、「suujiが2より大きい」です。

すると、ifのあとの条件は成立していません。
その場合、
ifのすぐ下に書いた内容ではなく、ifに続いて書いたelseの後の下に書いた内容が実行されます。

 


elif

elifという、elseとifをくっつけたような文もあります。

上の例を少し変えて、elifという文が真ん中辺りに増えています。
elifの下の部分が実行される条件を日本語にすると、「suujiが2以下で、もし1より大きければ」となります。

>>> suuji = 2
>>> if suuji > 2:
...   print('2より大きい')
... elif suuji > 1:
...   print('1より大きい')
... else:
...   print('1以下')
'2より小さい'

elifは、もし上に書いてある条件が当てはまらかなったら、右に書いてある条件をチェックする、という意味です。
下の例のように、elifをたくさん書くこともできます。

>>> suuji = -2
>>> if suuji > 2:  # 最初の条件
...   print('2より大きい')  
... elif suuji > 1: # 最初の条件が当てはまらかなったらチェックする条件
...   print('1より大きい')
... elif suuji > 0: # 次の条件が当てはまらかなったらチェックする条件
...   print('0より大きい')
... else:  # 上に書いてある条件が全て当ては余らなかったら
...   print('0以下')
'0以下'

この例だと、まず、suujiが2より大きいかをチェックします。(最初の条件)

当てはまらかなったら、suujiが1より大きいかをチェックします。(最初の条件が当てはまらかなったらチェックする条件)

さらに、これも当てはまらかなったら、suujiが0より大きいかをチェックします。(次の条件が当てはまらかなったらチェックする条件)

さらに、これも当てはまらかなったらelseの下に書いてある内容が実行されます。

 

どんどん下の条件に流れていく感じです。


ifの練習2

下の条件を満たすif、elif、elseを使ったコードを黒い欄で実行してみて下さい。

  • input関数を使ってユーザに数字入力させる
  • ユーザが入力した数字をint関数でint型に変換する
  • 変数suujiに、int型に変換した数字を代入する
  • suujiが10より大きかったら’10より大きい’と表示
  • suujiが10以下で、5より大きかったら’5より大きい’と表示
  • suujiが5以下だったら’小さい!!!’と表示

 


andとor

ifの後には、andとorで2つの条件を書くこともできます。

>>> suuji = -2
>>> if suuji > 2 and suuji < 5 :
...   print('5と2の間') 
... else: 
...   print('5以上か、2以下')
'0以下'

くわしくはこちら(執筆中….)で解説する予定です。

 



<< 前へ 第9回 たくさんのデータを1つにまとめる

>> 次へ 第11回 たくさんのデータで同じ処理を繰り返す


Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。