Python if文の条件分岐の書き方とは?覚えておきたい基礎を身につけよう!
2023.10.05更新
機電系エンジニア必見!!貴重なフリーランス案件はこちら ▶Pythonのif文は、条件分岐を表現する構文です。 if文を使うことで、複雑な場合分けの処理を表現することが可能になるため、 Python初心者にはぜひ覚えてもらいたい重要構文です。 この記事では、Pythonのif文について、基礎から応用まで解説します。
【初心者向け】Pythonを学ぶうえでは欠かせないif文の書き方を解説
Pythonのif文とは?
if文とは、プログラムに条件分岐の制御を行うための構文です。この記事では、Pythonをはじめあらゆるプログラミングで避けては通れないif文を書く方法について解説します。サンプルコードもあるので、参考にしてみてください。
なぜ、Pythonのif文は重要なのか?
Pythonでif文を覚えることが非常に重要な理由は、プログラミングは場合分けの処理が圧倒的に多いからです。例えば、「温度が20℃以上なら【適温】と出力する」といった具合で、 Pythonのif文は「もしxxならyyをせよ」という処理を表現できます。どのような処理でも使う場面が適切でないと真価を発揮できません。よく使われる構文だからこそ、Pythonでのif文の理解は非常に重要です。
【構文別】Pythonのif文を書く方法
まず初めに、Pythonのif文の概要から把握しましょう。Pythonのif文は、条件分岐のための制御構文なので、「Aの場合はαを実行する、Bの場合はβを実行する」といった、場合分けの命令を作ることができます。この条件分岐を使いこなせると、プログラミングの表現の幅が一気に広がります。それではさっそく、if文の基本形を見ていきましょう。
ifの基礎構文
Pythonのif文の基本構文は次の通りです。
if 条件式1:
条件式1がtrue(真)のときに行う処理
この構文の意味は、「もし条件式1がtrueの場合は、2行目に書いた処理を実行する」というものです。 Pythonのif文の条件式は、真(true)と偽(false)によるboolean型と呼ばれるデータ型で評価されます。また、Pythonでは条件式の後に「:」(コロン)が付くことに留意しましょう。具体的なソースコードは次の通りです。
a = 1
if a == 1:
print("aは1です")
この場合、条件式は「a = 1」なので変数aが1であればprint(”aは1です”)で示されている通り、Pythonで「aは1です」と出力されます。そして今回、変数aは1が代入されているため、「a == 1」は正しい(真、true)ので、3行目の処理が実行されることになります。このときif文中で使われている=は2つになることに注意してください。
これが、Pythonのif文の基本的な構文です。
if elseの構文
条件式が偽(false)だった場合の処理を追加する際、Pythonではif elseの構文を使います。
if 条件式:
条件式が真(true)の場合の処理
else:
条件式が偽(false)の場合の処理
行頭に空白を空けて、文字開始位置を他の行よりも下がった位置から始めるという、インデントの挿入が必要なので要注意です。次のサンプルコードは、基礎構文で紹介したPythonのコードを改良したものです。
a = 6
if a == 1:
print("aは1です")
else:
print("aは1ではありません")
変数aが1の場合は、trueの処理が実行されPythonで「aは1です」と出力されますが、今回aは6のため、偽(false)の処理が実行され「aは1ではありません」と出力されます。こうすることで、パターン分けの処理を実行できます。
elifを使う構文
さらにPythonで場合分けを複雑にしたい場合、例えば「aが1の場合、aが2の場合、aが3の場合」といった数値の場合分けをする際は、elif構文を用います。
if 条件式A:
条件式Aが真(true)の場合の処理
elif 条件式B:
条件式Aが偽(false)かつ、条件式Bが真(true)の場合の処理
else:
設定した条件式が全て偽(false)の場合の処理
Pythonではelifをelseの前に複数追加することで、さらに条件を複雑にできます。
それでは、サンプルコードを見てみましょう。
a = 4
if a == 1:
print("aは1です") elif
a == 2:
print("aは2です") elif
a == 3:
print("aは3です")
else:
print("aは1、2、3以外です")
この場合変数aが4のため、プログラミングを実行するとPythonで「aは1、2、3以外です」と出力されます。aが1なら、「aは1です」と出力されますし、aが3なら「aは3です」と出力されます。
このように、複雑な条件でもPythonのelif構文を用いて対応できます。ただし、あまり多くelifで条件を追加しすぎると、コードのメンテナンス性やプログラムの処理速度の低下を招くので注意が必要です。
【応用編】Pythonのif文の多様な使い方
比較演算子を使用する場合
Pythonの比較演算子は、2つの対象の関係を比較し、真(true)や偽(false)を返すことができる記号のことです。
例えば、「より大きい」や「未満」という表現を使う場合、Pythonでは「>」もしくは「<」を使います。「A > B」であればAがBより大きいとなり、「A < B」ならAがBより小さいという比較表現になります。
Pythonで使える比較演算子は10種類あります。
Pythonの比較演算子一覧表
演算子 | 意味 |
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 に含まれない |
これらの比較演算子を、Pythonのif文の条件式に組み込むことで、条件に合致した場合の分岐処理を命令できます。
数値やリストで条件を指定する場合
Pythonのif文の条件式では、比較だけではなく数値やリストといったオブジェクトを使うこともできます。
# 数値オブジェクト
if 100:
print('true')
# リストオブジェクト
if [33, 35, 60]:
print('true')
上記は、どちらもPythonのif文では真(true)を返します。一つ目は数値のオブジェクトのため、次はリストのオブジェクトが条件式に組まれているためです。逆に、次のオブジェクトは偽(false)を返します。
Pythonのif文では偽(false)とみなされるオブジェクト
- None,Falseといった偽であると定義されている定数
- 0, 0.0といった、数値型におけるゼロ:
- ’’, (), [], {}といった、空のシーケンスまたはコレクション
論理演算子(andやor)を使用する場合
論理演算子とは、論理を表現し、真(true)や偽(false)を返すことができる記号のことです。 例えば、Pythonの論理積の場合、「A and B」と書くことができます。この場合、A、Bともに真(ture)であれば真(true)を、そうでなければ偽(false)を返すことができます。Pythonの論理演算子には3つの種類があります。
Pythonの論理演算子表
演算子 | 意味 |
a and b | 論理積。aもbも真であれば真。一方でも偽なら偽。 |
a or b | 論理和。aまたはbが真であれば真。両方とも偽なら偽。 |
not a | 否定。aが偽であれば真。aが真であれば偽。 |
これらの論理演算子をPythonのif文で使い、条件分岐の処理を書くことができます。
条件式を改行して複数行で記述
複数の条件式を接続して使う場合、どうしても一行が長くなる場合があります。 そのような時は、条件式をPythonoのコードを複数行にすると便利です。 改行には\(バックスラッシュ)か、全体を()で囲むといった方法があります。
for i in range(-50, 50):
if i >= 0 \
and i % 2 == 0:
print(str(i) + "は正の偶数です")
# 正の偶数の時に出力
for i in range(-50, 50):
if (i >= 0
and i % 2 == 0):
print(str(i) + "は正の偶数です")
# ( )の場合
文字列の改行や、計算式の改行にも対応できます。 Pythonに限りませんが、コードは長くなればなるほど見づらくなるものです。長いコードは複数行にし、コードの可読性を上げましょう。
【中級者向け】Pythonのif文の使い方
ここでは、Pythonのif文の中級編として三項演算子の使い方について解説します。三項演算子はif文を短く書くことができる便利な書き方で、基本的な記述方法は次の通りです。
真(true)の場合の処理 if 条件式 else 偽(false)の場合の処理
if elseと書く時に比べ、シンプルな書き方になっているのが分かりますね。今回のサンプルコードは、変数aが1の場合は「aは1です」、それ以外の場合は「aは1ではありません」と出力するようにします。
# if elseで条件式を書く場合
a = 1
if a == 1:
print('1です')
else:
print('1以外です')
と書きますが、
# 三項演算子の場合
a = 1
print('1です') if a == 1 else print('1以外です')
と書けます。 すっきりとPythonの条件分岐の処理が書けるので、ぜひ覚えて活用してみましょう。
またPythonのif文の中では、他の構文を組み込むことも可能です。 例えば、with文を使ってファイルを読み込むといった処理があります。
a = 1
if a == 1:
with open("try.text") as try:
print(try.read())
こうすると、「aが1ならtry.textが処理区間だけ開かれ、テキストの中身が表示される」という処理になります。 さまざまな文や関数をPythonのif文と組み合わせ、有効なプログラミング処理を作り上げていきましょう。
Pythonのif文は条件分岐を書くために重要な文法
Pythonのif文は、特定の条件でのみ処理を実行させたいときに使います。 if文はプログラミングの際に必ず使う文法で、まとめると次の通りです。
Pythonのif文のまとめ
- Pythonのif文は条件式を使い、真(true)か偽(false)で処理を分岐させるのが基本形
- elseやelifを使うことで、より複雑な条件式が書ける
- 比較演算子以外にも、論理演算子などさまざまな条件式を書くことで応用が可能
if文を理解し、使い方を知ることで、プログラミングスキルを高めていきましょう。
また、実際のエンジニアの求人情報を見て、自分が活躍する姿をイメージすることも大切です。FREE AIDの求人情報を見て、勉強へのモチベーションを維持しましょう。
電子工学・電気工学の専門知識が欲しいときは
電子回路の知識や組み方を勉強し、自分でものづくりができれば良いですが、知識や技術を身に着けるまでにはやはり時間がかかります。しかし、機電系のエンジニアは会社に属していることが多く、頼みづらいと思うこともあるのではないでしょうか。
電子工学や電気工学の専門的な技術・知識が欲しい!という方におすすめなのがFREE AIDです。
FREE AIDは、これまでになかったフリーランスの機電系エンジニアにむけた情報プラットフォームです。
仕事を探すフリーランスのエンジニアと、機電系のプロフェッショナル人材が欲しい企業などのマッチングを行っています。
フリーランス×機電系エンジニア!高単価求人はこちら ▶機電系求人はこちら
-
設計技術者(樹脂、金属部品)
-
- 単価
-
40~50万円
-
- 職種
- 機械設計
-
詳細を見る
-
-
FPGAの設計開発:電気電子設計
-
- 単価
-
70~80万円
-
- 職種
- 電気電子設計
- スキル
- ・FPGA論理設計、RTLコーディング、論理検証環境構築、論理検証・RTLコード:VHDL・論理検証ツール:Siemens製Questa/ModelSIM
- 地域
- 東京
- ポイント
- #高単価
-
詳細を見る
-
-
UI画面の設計業務:電気電子設計
-
- 単価
-
64〜万円
-
- 職種
- 開発
- 電気電子設計
- スキル
- 必要スキル: ・電源回路は複数回経験し、設計動作確認など、一人でもある程度やるべきことが分かる。 ・数十頁のデータシートを読み、要求仕様(タイミング/電圧など)が理解できる ・その他左記の回路の種類の中で、回路設計の実務経験が1回以上ある。 ・回路修正ができる(半田付け、ジャンパー処理)
- 地域
- 関西
- ポイント
- #業務委託#駅近
-
詳細を見る
-
-
【急募】工作機械メーカーにおける自社製品の制御設計
-
- 単価
-
40~50万円
-
- 職種
- 電気電子設計
- スキル
- 基本的なPCスキル産業用機械・装置の電気設計経験
- 地域
- 山梨県
- ポイント
- #業務委託
-
詳細を見る
-