【Python入門】Pythonでif文をマスターしよう!



【Python入門】Pythonでif文をマスターしよう!

こちらではPythonの if文 をご紹介。
「if文って何?」という方から「あれ、Pythonの if文 ってどう書くんだっけ」という方や「サンプルコードに出てくるこのif文の使い方、ナニ?」というPython学習中の方向けに様々なパターンの if文 をご紹介させて頂きます。

目次
  1. 【Python入門】Pythonでif文をマスターしよう!
  2. if文とは?
  3. if文を作ってみよう
  4. 複数条件の場合のif文①(else)
  5. 複数条件の場合のif文②(elif)
  6. if文の中にif文(ネスト型)
  7. for文の中のif文
  8. まとめ

【Python入門】Pythonでif文をマスターしよう!

if文とは?

image

if文は、条件分岐の指示を行うためのプログラムで、Pythonに限らず Java や PHP、 Ruby など多くのプログラミング言語で使われています。 書き方は各言語で違うものの、考え方や処理プロセスはどの言語もほとんど同じなので、if文を一度習得しておくと他の言語に移行した時も応用が効くでしょう。

また if文 の活用範囲は広く、演算処理などの基本プログラムから、入力を手伝ってくれるような自動化処理のプログラム、それから人工知能開発のプログラムにWebアプリケーション・プログラムなどほとんどの場面で if文 は登場。

そしてまた、for文 や while文の中での if文 や関数定義内(def ・・・)での if文 など実際の利用現場では、他の基本文法と掛けあわせて使われているケースも多いので基本をしっかり押さえておきたいですね。

if文を作ってみよう

image

それでは早速Pythonの if文 を作ってみましょう。 Pythonの if文 は、下記のように書きます。

if 3 + 3 == 6:
    print('あってるね')

if の後に条件式を書いて、行末に : 。 次の行ではインデントを行って、その条件式で実行する処理を記述。上記の場合は print 処理を行っていますね。 基本的な書き方はこんな感じです。

条件式には変数も使えますし、文字列やリストも使用可能。

■条件式で変数を使ってみる■

x = 1
y = 2
z = 3
if x + y == z:
    print('あってるね')

■条件式に文字列を使ってみる■

if 'password' == 'password':
    print('OK')

■条件式にリストを使ってみる■

x = [1, 2, 3]
y = [1, 2, 3]
z = [3, 2, 1]
if x == y:
    print('ok')

リスト機能を学習済みの方は、リスト内の要素順も一緒でないとイコールにならないこと、ご存知のことと思います。 試しに以下のコードを追加して実行してみて下さい。

if x == z:
    print('ok')

x と z では要素の順番が異なりますので、イコールではなく print も実行されませんね。

image

■条件式で辞書型を使ってみる■

x = {'first':1, 'second':2, 'third':3}
y = {'third':3, 'first':1, 'second':2}
if x == y:
    print('ok')

条件式でリストを使った場合は、要素順も一緒でないとイコールになりませんでしたが、辞書型の場合は要素順が違ってもイコールになりますね。

以上のようなことを、実際に if文 を書いて体験してみると、「条件が一致しない場合でもなんだかの処理がしたい」と思いますよね。 そんな時は elif や else を使うと if文 がより充実してきます。

複数条件の場合のif文①(else)

「もしAの条件が当てはまればBの処理、もしAの条件が当てはまらなかったらCの処理」というように条件処理を振り分けたい場合は、 else が活用できますね。例えばこんな感じ。

x = 1
y = 3

if x + y == 3:
    print('ok')
else:
    print('違うよ〜')

image

if else が使えるようになると簡単な算数問題を作成できるようになりますね。例えばこんな感じ。

print('足して 15 になる数字の組み合わせは?')
x = int(input('ひとつ目の数字'))
y = int(input('ふたつ目の数字'))
if x + y == 15:
    print('正解!')
else:
    print('違うよ〜')

<< 結果 >> image

複数条件の場合のif文②(elif)

先ほどの else を使った if文 は、A もしくは B の 2つしか結果を選べませんでした。しかし、実際にプログラムを組む場合では 2つ以上の結果が必要な時も。例えば天気や在庫、残金のような複数の結果を持つデータとの照合プログラム。そんな時は elif を使います。

from weather import Weather, Unit

weather = Weather(unit=Unit.CELSIUS)
location = weather.lookup_by_location('tokyo')
data = location.condition
data_set = data.text
print('本日の天気:', data_set)


if data_set == 'Sunny':
    print('外で遊べるね')

elif data_set == 'Rain':
    print('雨の日は、室内で遊ぼうか')

else:
    print('たぶん外遊び、大丈夫でしょう')

上記コードは、今日の東京の天気データを取得して、もし晴れてたら「外遊び」、もし雨だったら「室内あそび」、それ以外だったら「たぶん外遊び大丈夫かな」というプログラム。

elif の書き方としては if文 と同じで、条件式を書いて、その結果に合えばプログラム実行、という流れ。 elif が使えるようになると、急にプログラムっぽくなって楽しいですよね。

<< 結果 >>

image

if文の中にif文(ネスト型)

Pythonのサンプルコードを探していると時々「if文の中にif文」、つまりネスト型を拝見しますのでご紹介させて頂きます。

print('こちらの遊具は幼児向けです')
heightLimit = 120
ageLimit = 10

height = int(input('あなたの身長は何センチ?'))
age = int(input('あなたの年齢は何歳?'))

if height <= heightLimit:
    if age <= ageLimit:
        print('乗れますよ')
    else:
        print('チョットもうお兄ちゃんお姉ちゃんみたいですね')
else:
    print('チョットもう大きいみたいですね')

こちらはネスト型 if文 のサンプルで、身長と年齢を元に遊具に乗れるかどうかチェックするプログラムです。遊園地などでの使用ケースが想定できますね。

まず最初の if文 で身長をチェック。仮に制限の 120cm より大きい場合は、下から2行目の else 文 に移動。 身長が制限の 120cm 未満の場合は、次の if文 で年齢チェック。 この条件もクリアしていれば遊具に乗れて、もし年齢オーバーしていれば「ちょっともうお兄ちゃん・・・・」のプリント文を出力。

こうしたネスト型 if文 は、上から順番にゆっくり読むと決して難しい文(プログラム)ではありませんが、結果を急いで飛ばし読みするとチンプンカンプンになりやすいです。注意しましょう。

ネスト・・・入れ子型

for文の中のif文

人工知能やアプリケーションの開発レベルになると for文 の中で if文 が使われたりします。 ここでは基本的な「for文の中のif文」をご紹介させて頂きますね。

number = 0

for number in range(10):
   number = number + 1

   if number == 7:
      break    # プログラム終了の指示
   print('番号: ' + str(number))

print('終了')

上記コードは、番号を1から順番に数える range() 関数を用いたプログラムで、7まで数えるとプログラムが終了するようになっています。

ループ処理は以下のような感じです。

ループ回数 計算内容 print内容
1 0+1=1 1
2 1+1=2 2
3 2+1=3 3
4 3+1=4 4
5 4+1=5 5
6 5+1=6 6
7 6+1=7 → break 処理
if文の終了
8
9
10

今回はブレイクポイントに定数を入力していますが、他の変数などに設定するとなんだかの自動処理プログラムに使えそうですね。

まとめ

参考書などを見る限りは「if文」それほど難しく感じないことでしょう。 しかし、GitHubや機械学習などで出てくるサンプルコードのif文は、読解に苦労するのでは。 これはif文に到達するまでの変数設定や関数設定などプログラム全体の理解に苦労している、もしくは理解できていないからだと思います。

これまでに変数や関数、リストなどの基礎学習を飛ばしてこられた方、一度Pythonの基礎をしっかり固めてみませんか? 忙しくても『オンライン×マンツーマン』なら低負荷でPython習得を実現できると思いますよ。プログラミングスクールの CodeCamp、おすすめです。

オシママサラ
この記事を書いた人
オシママサラ
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp