【Python】レッスン2-2:if文による分岐処理を理解しよう

ながみえ
【Python学習記事のアイキャッチ画像】Lesson2-2 条件分岐(if-else文)を理解しよう

一つ前のLessonでは比較演算子と論理演算子について学習しました。

今回は条件分岐(if-else文)について見ていきます。

Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:条件分岐(if-else文)を理解しよう ◁今回はココ
・Lesson2-3:条件分岐(if-elif-else文)を理解しよう
・Lesson2-4:条件分岐(match文)を理解しよう
・Lesson2-5:繰り返し処理(for文)を理解しよう
・Lesson2-6:繰り返し処理(while文)を理解しよう
・Lesson2-7:繰り返しの制御を理解しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理の基礎を理解しよう
・練習問題2-1:ハイアンドロー ゲームを作ろう
・練習問題2-2:数字当てゲームを作ろう
・練習問題2-3:簡単なじゃんけんゲームを作ろう
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Python基礎習得者にお勧めの道6選(実務or副業)

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-1 比較演算子と論理演算子を理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(完全無料のテキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson2-3 条件分岐(if-elef文)を理解しよう

if-else文による条件分岐|基本の使い方と実例

プログラムを作るとき、「ある条件を満たしたときだけ処理を行いたい」「条件に応じて処理を変えたい」といった場面は必ず出てきます。

Pythonでそのような条件分岐を実現する基本構文が if文 です。

さらに else文 を組み合わせることで、「もし〜なら」「そうでなければ」といった分岐を柔軟に書けるようになります。

本記事では、if文とelse文の基本的な書き方から実用的な例までを丁寧に解説していきます。

ぜひ最後まで読み進めて、自分のプログラムに条件分岐を取り入れる力を身につけましょう!

【Python】勉強猫がノートパソコンを前にして学習を始める様子。記事内の学習スタート用イラスト

if-else文とは?|条件分岐の基本構文

if-else は、プログラムが「条件」によって異なる動作をするように指示する文法です。

条件が「真(True)」であればifブロック内の処理が実行され、そうでない場合はelseブロックの処理が実行されます。

if-else文の基本的な構文は次の通りです。

if 条件:
    # 条件がTrueのときの処理
else:
    # 条件がFalseのときの処理

このシンプルな構文を使って、複雑な判断をプログラムに組み込むことができます。

次に、if-else文を使った具体的な例を見てみましょう。

ユーザーに数値を入力してもらい、その数値が正の数かどうかを判定するプログラムです。

num = int(input("数字を入力してください: "))	# input()はstrを返すのでint型に変更して変数に代入

if num > 0:									# もしnumが0より大きいなら
    print("この数は正の数です。")				# このコードを実行
else:										# もし「numが0より大きい」が成り立たないなら
    print("この数は正の数ではありません。")	# このコードを実行

このコードではユーザーが入力した数値が0より大きければ「この数は正の数です」と表示され、それ以外の場合は「この数は正の数ではありません」と表示されます。

例えば5を入力すると「この数は正の数です」と表示され、-3を入力すると「この数は正の数ではありません」と表示されます。

また、Pythonではインデント(字下げ)が非常に重要です。

インデントとは

プログラミングコードにおいて、コードの一部の行の行頭に半角スペースを4つ(もしくは2つ)入れることをインデントを入れる(字下げする)と言います。

上のコードでは「print(“この数は正の数です。”)」の部分の前に半角スペースが4つあり、これがインデントです。

Pythonにおいてインデントとは、ただコードを見やすくするだけでなくその行がどのブロックに属するかを定義するものであり、非常に重要です。

インデントはどこまでがif文の中に含まれる処理かを示しており、これがないとエラーが発生するか、意図しない動作になります。

以下の例で確認してみましょう。

if num > 0:		# if文の定義部分
    print(num)	# ここはif文の中
print("if文を終了しました")	# ここはif文の外

この例ではprint(num)がif文の中に含まれており、インデントによってその範囲が明確に示されています。

print(num)はif文が成立する場合のみ実行され、成立しない場合はスルーされます。

インデントのないprint("if文終了しました")の部分は、if文の外なので、if文が成立するしないに関わらず実行されます。

ちなみに同じコードをJava言語で書くと以下のようになります。

if num > 0 {
    System.out.println(num);
} // ここまでがif文の中
System.out.println("if文を終了しました"); // ここはif文の外

Pythonはif文の中身をインデントで表すのに対して、Javaは{}で囲います。

初心者にはJavaの書き方が分かりやすいですが、慣れてくるとPythonの方がシンプルで綺麗なコードになると気付けるはずです。

三項演算子の使い方と書き方の例

if-else文は通常の形式以外にも、Pythonでは 三項演算子 を使って1行で表現することができます。

これはシンプルな条件分岐を簡潔に書きたい場合に非常に便利です。

三項演算子の基本構文は次の通りです:

値1 if 条件 else 値2
  • 条件: ifの後に続く条件がTrue(真)であれば「値1」が選ばれ、False(偽)であれば「値2」が選ばれます。
  • 値1: 条件がTrueの場合に実行される値や処理。
  • 値2: 条件がFalseの場合に実行される値や処理。

このように三項演算子を使うことで簡単なif-else文をより短く表現することができます。

例として、先ほどの数値が正の数かどうかを判定するプログラムを書き換えてみます。

num = int(input("数字を入力してください: "))

# 三項演算子を使った条件式
result = "この数は正の数です。" if num > 0 else "この数は正の数ではありません。"

print(result)

if-else文を1行で表現できるため、コードを簡潔にすることができます。

ただし複雑な条件の場合は通常のif-else文の方が読みやすいため、状況に応じて使い分けましょう。

まとめ|条件分岐を使いこなしコードに判断力を与えよう

今回の記事では、if文とelse文を使った基本的な条件分岐の書き方 から、三項演算子を用いたより簡潔な表現 まで学びました。

これにより、条件に応じて処理を切り替えたり、シンプルな書き方で可読性を高めたりできるようになりましたね。

プログラムに「判断力」を持たせられるようになったことは、より実用的なコードを書くための大きな一歩です。

小さな例題でも手を動かしながら練習することで、この知識は確実に自分のものになります。

ここで得た理解を積み重ねれば、ますます柔軟で表現力のあるプログラムを書けるようになります。ぜひ自信を持って、次の学習に進んでいきましょう!

練習問題:if-else文を使ってみよう

この記事で学習した「if文による条件分岐」を復習する練習問題に挑戦しましょう。

あわせて読みたい
Python練習問題総まとめ|全レッスンの確認問題だけを集めました
Python練習問題総まとめ|全レッスンの確認問題だけを集めました
【Python】勉強猫がノートパソコンに向かい、練習問題に挑戦する様子。記事内の休憩用イラスト

問題|年齢判定プログラムを作ろう

ユーザーの年齢を入力してもらい、年齢が20歳以上かどうかを判定するプログラムを作成しましょう。

年齢が20歳以上の場合には「あなたは成人です。」と表示し、20歳未満の場合には「あなたは未成年です。」と表示するプログラムを作成してください。

以下の要件に従ってコードを完成させてください。

  • input関数を使用して、ユーザーに年齢を入力してもらうこと。
  • 入力された年齢を整数型に変換すること。
  • if-else文を使って、年齢が20歳以上かどうかを判定すること。
  • 20歳以上の場合は「あなたは成人です。」、それ以外の場合は「あなたは未成年です。」と表示すること。

ただし、以下のような実行結果となるコードを書くこと。

年齢を入力してください: 25
あなたは成人です。
年齢を入力してください: 18
あなたは未成年です。

解答例|年齢判定プログラムのコード例

例えば以下のようなプログラムが考えられます。

Q
正解コード
# 年齢を入力してもらう
age = int(input("年齢を入力してください: "))

# 条件分岐: 入力された年齢が20歳以上かどうかを確認する
if age >= 20:
    # 条件が真(True)の場合、このブロックのコードが実行される
    print("あなたは成人です。")
else:
    # 条件が偽(False)の場合、このブロックのコードが実行される
    print("あなたは未成年です。")

あとで復習できるように、理解度を保存しましょう

この記事の内容はどれくらい理解できましたか? パーソナル学習ログアプリに今の理解度を残しておくと、あとで復習すべき記事が分かりやすくなります。


また本サイトでは、みなさまの学習をよりサポートできるサービスを実現するため、みなさまの意見をアンケート形式でお伺いしています。

1分だけ、ご協力いただけますと幸いです。

Q
記事改善アンケート|ご意見をお聞かせください(1分で終わります)
【Python】記事改善アンケート
1.この記事は分かりやすかったですか?(一つ選択)
3.改善してほしい点(任意・複数選択)
4.パーソナル学習ログアプリを使っていますか?(一つ選択)

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-1 比較演算子と論理演算子を理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(完全無料のテキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson2-3 条件分岐(if-elef文)を理解しよう

if文による条件分岐の疑問解消|FAQと用語のまとめ

初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。

理解を深めたいときや、ふと疑問に感じたときに役立ててください。

FAQ|if文による条件分岐に関するよくある質問

Q
Q1. if-else文の基本的な書き方は?

Pythonではif 条件:の後に処理を書き、必要に応じてelse:で条件に合わない場合の処理を追加します。インデントに注意し、構造を明確にすることが重要です。

Q
Q2. if-else文は何個でも使えますか?

if-else文は入れ子(ネスト)にしたり、複数並べて使うことが可能です。ただし、複雑になりすぎると可読性が下がるため注意が必要です。

Q
Q3. if文だけでelseを書かなくても問題ありませんか?

はい、elseは必須ではありません。条件が成り立つときだけ特定の処理をしたい場合は、if文単体で問題ありません。

Python用語集|if文による条件分岐に関する用語一覧

今回の記事で出てきた用語・関数などを一覧で紹介します。

このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。

Python用語定義・使い方の概要解説記事へのリンク
条件分岐条件に応じて実行する処理を変えるための構文で、プログラムの分岐を制御するために使われる本記事
if-else条件が真のときに実行する処理と、偽のときに実行する処理を記述する制御構文本記事
三項演算子値1 if 条件 else 値2 の形式で1行に条件分岐を記述できる簡潔な構文本記事
真偽値論理的な「真」(True) または「偽」(False) を表すデータ型。条件判定に使われるなし
elif複数の条件を順に判定するための構文で、ifelse の間に挟んで使うLesson2-3
記事URLをコピーしました