分岐#
ここまでは一文だけの命令を作ってきました。でも、本格的なプログラミングのためには、複数の文を繰返し実行したり、条件分岐させたりということが必要になります。これを制御文と言います。比較演算子や論理演算子について学んだので、いろいろな条件を使ってプログラムを実行させることができるようになりました。
if文とブロックの書き方#
ifの後に条件を書きます。そして条件が満たされているときはブロックの中身を実行します。ここでブロックという概念が初めて出てきました。
ifの条件の後の:がブロックを示します。Pythonの特徴として、ブロックの領域はインデントを利用して示します。インデントがないとエラーになります。通常は、スペース4つでインデントします。elseブロックはif以下の条件を満たさないときに実行されます。
# 正解/不正解を返すプログラムを作る
var = 1863
if var == 1864:
print('正解です!')
else:
print('不正解です。')
不正解です。
条件分岐が3種類以上に分かれる場合には、
最初の条件で
if間の条件で
elif最後で
else
hour = 23
if hour <= 10:
print("おはよう")
elif hour>22:
print("おやすみ")
else:
print("こんにちは")
おやすみ
\(x\)を入力し、以下の数式で\(f(x)\)を計算するプログラミングを書いてください。
# ここからかいてみよう
x=12 #xの値を変えてみよう
if x<10:
pass # passを削除し、ここから書いてみよう
様々な条件#
if の右などに来る条件として様々なものを書くことができます。
演算子#
演算子 |
意味 |
|---|---|
x < y |
x は y より小さい |
x <= y |
x は y 以下 |
x > y |
x は y より大きい |
x >= y |
x は y 以上 |
x == y |
x と y は等しい |
x != y |
x と y は等しくない |
複数の条件#
な基本的な条件を、 and とorなどの倫理演算子を用いて組み合わせることができます。
x=10
x>5 and x<15
True
x=20
x>5 and x<15
False
in/not inによる多重比較#
所属関係を調べる際はin演算子を使います。
x=12
x in [1,2,3,4,5,6,7,8,9,10]
False
x=12
x not in [1,2,3,4,5,6,7,8,9,10]
True
"s" in "sociology"
True
Note
真理値を返す関数
真理値とは、 True または False のどちらかの値のことです。 これらは変数ではなく、組み込み定数であることに注意してください。
Trueは、正しいこと(真)を表します。Falseは、間違ったこと(偽)を表します。ifの後の条件の式は、TrueかFalseを値として持ちます。
ユーザーの年齢に応じて、入場料金を計算するプログラムを作成してください。条件は以下の通りです。
3歳以下: 無料 4歳から12歳まで: 500円 13歳以上: 1000円
ユーザーが入力した言語が特定の言語リストに含まれるかどうかを判定し、結果を表示するプログラムを作成してください。条件は以下の通りです。
ユーザーが入力した言語がリスト languages に含まれている場合は、「サポートされている言語です」と表示します。
ユーザーが入力した言語がリスト languages に含まれていない場合で、リスト supported_languages に含まれている場合は、「他の言語でもサポートされています」と表示します。
上記のいずれの場合でもない場合は、「サポートされていない言語です」と表示します。
languages = ["Python", "Java", "C++", "JavaScript"]
supported_languages = ["Ruby", "Go", "PHP"]
user_language = "Python" # user_languageを変えてみよう