Python入門トップページ


目次

  1. プログラミング言語
  2. Anaconda - Jupyter Notebook / JupyterLab の環境設定
  3. Python の基礎
  4. リスト,タプル,辞書,集合
  5. 再び Jupyter Notebook の操作
  6. Python の制御構文
    1. コメント
    2. if による条件分岐
    3. while による繰り返し
    4. for による繰り返し
    5. range による数値シーケンス
    6. enumerate による繰り返し
    7. zip による繰り返し
    8. match による条件分岐
  7. 関数
  8. 便利な関数など
  9. リストの内包表記
  10. 多次元リスト
  11. クラス
  12. 演習問題
  13. 雑多な情報

Python の基礎

Python の制御構文

if による条件分岐

例えば score が 60 以上なら Congratulation!,60 未満なら Sorry! と表示するプログラムは次のようになります.ここで,ifelse の行の最後に : が必要であることに注意する必要があります.また,ifの中身がどこまでであるかは,インデント(字下げ)で指定します.つまり,print の前に半角スペースを4個入力する(Jupyter Notebook の場合は Tab キーでも良いでしょう.Visual Studio Code では設定項目の「Editor: Insert Spaces」にチェックを入れて,「Editor: Tab Size」を「4」に設定すれば Tab キーだけで4つのスペースが入力されます.Atom の場合は「設定」→「エディタ設定」→「ソフトタブ」にチェックを入れ,「タブ幅」を「4」にするとよい).インデントが重要な意味を持っているのは Python の特徴であり,多くの他の言語とは異なる部分です.なお,Python コードのスタイルガイド (PEP 8) はここを参照してください


score = 70
if score >= 60:
    print("Congratulation!")
else:
    print("Sorry!")
Congratulation!

次の 2 種類のコードでインデントがどのように影響するかを考えよう.


score = 70
if score >= 60:
    print("Congratulation!")
else:
    print("Sorry!")
print('score = ', score) # if, else の外側なので,常に実行される
Congratulation!
score =  70

score = 70
if score >= 60:
    print("Congratulation!")
else:
    print("Sorry!")
    print('score = ', score) # else の中なので,60 以上なら実行されない
Congratulation!

3通り以上に場合分けをしたい場合は,if, elif, else を使えば良いでしょう.


score = 83
if score >= 90:
    print("S")
elif score >= 80:
    print("A")
elif score >=70:
    print("B")
elif score >=60:
    print("C")
else:
    print("D")
A

Python では次の比較演算子が利用できます.

演算子意味
==等しい
!=等しくない
<より小さい
<=以下
>より大きい
>=以上
in要素にある

なお,「等しい」は == のように = を2つ並べて書くことに注意する必要があります.


signal = 'green'
if signal == 'green':
    print("Go")
else:
    print("Stop")
Go

複数の条件で「かつ」や「または」を表現したければ,andornot を使います.例えば,数学と科学の得点が両方とも 60 以上の時だけ Congratulation! と表示します.


mathematics = 70
science = 70
if mathematics >= 60 and science >= 60:
    print("Congratulation!")
Congratulation!

複数の条件を「または」で表現する状況を想定してみよう.例えば,曜日が「Monday」「Tuesday」「Wednesday」「Thursday」「Friday」なら授業日で,「Saturday」「Sunday」ならば授業のない日,それ以外なら入力ミスと判定したい状況を考えます.このとき,or を使って記述すると次のようになります.


day = 'Tuesday'

if day == 'Monday' or day == 'Tuesday' or day == 'Wednesday' or day == 'Thursday' or day == 'Friday':
    print('授業日です')
elif day == 'Saturday' or day == 'Sunday':
    print('授業のない日です')
else:
    print('入力ミス?')
授業日です

しかし,or を使わずに,変数 in リスト のように記述して,変数がリストに含まれるかどうかを判定することで,よりスッキリと記述できるようになります.


day = 'Tuesday'

if day in ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']:
    print('授業日です')
elif day in ['Saturday', 'Sunday']:
    print('授業のない日です')
else:
    print('入力ミス?')
授業日です

目次に戻る