Pythonでif文を使って出来ることと使い方をまとめてみました

18/11/11 16:18:52     19/05/05 15:13:32

ifイメージ

if文の概念はほとんどのプログラミング言語に用意されており、また基本的なロジックでもあります。条件分岐や繰り返し処理はアルゴリズムの基本なので、if文がないとプログラミングのメリットを活かせないと言っても過言ではないでしょう。

条件分岐なしで単発の処理のみを行うシステムや同じ繰り返し処理を行うシステムも存在しますが、世の中のシステムのほとんどは条件分岐して処理を分けています。またif文以外にもswitch-caseなどで条件分岐させることも可能ですが、ネスト(条件分岐を階層化させて、条件分岐のなかでさらに条件分岐させること)させるにはif文が必要不可欠です。

これについてはPythonも例外ではないので、Pythonが初めてのプログラミング言語である場合ぜひif文の使い方は直感的に使えるレベルにまで落とし込んでください。とはいえ一度理解して繰り返し書いていれば、すぐに日本語の文章を書くように感覚的にif文が出てくるようになるはずです。

またPythonでif文の使い方を理解すれば他のプログラミング言語でもほぼ使い方は同じなので、その後のプログラミング言語の習得も早くなります。難しくはないのでif文で挫折することはないかと思いますが、どうしてもよくわからない場合「条件分岐させている」とだけ把握しておいてください。

ざっくりと把握しておけば、多くのソースコードにif文が出てくるためそのうち嫌でも理解できるかと思います。

if文の使い方

if文の概要は上記の通りなので、さっそくPythonでのif文の書き方を確認しましょう。宣言部分等if文以外の部分は省略しますが、if文の基本形は以下のようになります。

if 1 + 1 == 2:
     print('正解')

実際にこのようなコードを書くことはないかと思いますが、上記のコードはもしも1+1が2なら正解と出力する、というコードです。上記のコードではソースのなかに1+1==2と書いてしまっていますが、たとえば==の後ろを変数にして、前でその変数にユーザーが入力した数値を格納するようなシステムも作れます。

そうすると、ユーザーが計算式を見て入力した結果が合っていれば正解、間違っていれば不正解を出す、といったプログラムを書くこともできます。同様に、変数を入れる場合は以下のようになります。

x = 1
y = 2
z = 3
if x + y == z:
     print('正解')

elseの使い方

上の説明では、if文に入ったときの処理のみを解説しました。if文に入れば処理が実行され、そうでない場合処理は行われません。しかし、if文に入らなかった場合の処理を記述したい場合も多いでしょう。

実際のシステム開発では、if文に入らなかった場合の処理も記述するのが一般的なので、ifとセットで「そうでなかった場合」のelseも記述します。

x = 1
y = 3

if x + y == 3:
     print('正解')
else:
     print('不正解 ')

1+3が3なら正解、そうでないなら不正解を出力する、というソースコードですが、計算結果は4です。つまり、elseの不正解が出力されます。

elifの使い方

上のelseはif文以外の場合でしたが、「if文の条件には当てはまらなくて、さらに○○とうい条件に当てはまる場合」という処理を書きたい場合もあるでしょう。その場合elifを使用します。

Pythonではelifという省略された感じのコードになっていますが、その他のプログラミング言語ではelse ifとなっているケースが多いです。つまり、if文の例外の場合のさらなるif文のようなイメージです。具体的なソースコードとしては以下のようになります。

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('バイクで走る')

 

if文、else文、elif文と直接関係はないので上の方のコードは無視で良いのですが、東京の天気を取得しています。ユニットといって誰か凄腕のプログラマーが作ったプログラムが一つのまとまりになっているので、それをインポートして利用することができます。

たとえば東京の天気の取得であっても、インポートして利用すれば自分で取得処理を記述する必要がありません。なのでdata_setをプリントする部分までは天気を取得する処理なので関係ないとして、問題は下のif文からの処理です。

上記のソースコードでは、もしも天気が晴れなら「釣りに行く」、雨なら「筋トレする」、そうでない場合は「バイクで走る」という処理になっています。つまり曇りの場合だけでなく雪などでもバイクで走るので、かなりハードなプログラムです。

if文をネストさせる

冒頭で少し触れましたが、if文のなかにif文を入れてネストさせることができます。たとえば、以下のサンプルコードのようなことです。

print('乗り物の身長、年齢制限')
heightLimit = 120
ageLimit = 10

height = int(input('身長を入力してください'))
age = int(input('年齢を入力してください'))

if height >= heightLimit:
     if age >= ageLimit:
          print('乗れます)
     else:
          print('年齢が足りません')
else:
     print('身長が足りません')

 

たとえば遊園地の乗り物を想定して、上記のようなコードを記述しました。あまり遊園地に行かないので乗り物に年齢の制限があったかどうか思い出せませんが、身長の制限はあるでしょう。

今回は、身長と年齢の制限が設けられていると仮定します。それぞれ120cmと10歳ですが、順番にチェックしていくプログラムです。まず身長と年齢を入力し、身長が足りない場合はその時点で一番下のelseに入って処理を終了します。

身長の要件を満たす場合、ネストした年齢チェックのif文に入ります。年齢要件も満たしていれば乗り物に乗れて、年齢が足りない場合は「年齢が足りません」と出力されて終了します。

一つ目のif文の条件に合致して二つ目のif文に入った場合、一番下のelse文は実行されません。なぜなら、一番下のelse文は一つ目のif文に対応しているものだからです。このようにif文をネストさせる場合、どのelif文やelse文がどのif文に対応しているのかきちんと整理しながら実装することが重要になります。

コツとしては、シンプルですがインデントをきちんとさせることです。対応しているif文、elif文、else文は必ず同じ列に来るようにインデントを整えましょう。ちなみに上のソースコードでは身長が足りない場合もユーザーに年齢を入力させているため、無駄な処理が発生している場合があります。

ではどうすれば無駄な処理が発生せずに済むか、といったことを考えるのもプログラミングにおいては重要ですね。

案件量が豊富なアルマサーチ

アルマサーチ

最後に、アルマサーチのご紹介!

アルマサーチはフリーランス向けに案件をご紹介することに特化したエージェントサービスです。豊富な案件量から、安定して継続的な案件のご紹介を実現しており、口コミから登録エンジニアが急増中です。

アルマサーチが選ばれる理由

  1. 豊富な案件量。週3?4日の案件や在宅リモート案件も。
  2. 優秀なコンサルタント陣。
  3. 案件に参画後もしっかりサポート。

豊富な案件量

フリーランス向けに特化し、業界屈指の案件量を誇ります!週3?4日の案件や、在宅リモート案件もありますし、その他あらゆる希望をしっかりお伝えください。最適な案件のご紹介をさせていただきます。

優秀なコンサルタント陣

技術に疎く、開発の希望を伝えても響かないエージェント・・・嫌ですよね。アルマサーチにはそのような者は一切おりません!さらに独立にまつわる税金や保険関係に詳しいスタッフが徹底的にサポートさせていただきます。

案件に参画後もしっかりサポート

常駐先が決まった瞬間に、一度も連絡が取れなくなるエージェント・・・いますよね?アルマサーチでは、そのようなことは一切ありません!常に電話やメールは即対応しますし、月に1度のランチミーティングなどから現場の状況を細かくヒアリングし、就業環境改善に尽力いたします。

相談する

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する