この章ではif文で星座を判定します。このプログラムの中にあるif文は入れ子になっていますので、このif文の入れ子について説明していきます。
長いプログラムですが、if文が連続しているだけです。 では前から説明していきます。 この箇所ではユーザーに誕生日の月と日を入力させています。
つまり、以下の赤枠の箇所のようにユーザーに入力させます。 そのユーザーに入力させるための関数がraw_input関数です。 「文字列」には画面に表示させたい文字列を入力します。この文字列は省略できます。
この関数はユーザーにキーボードからの入力を促すわけですが、例え数値を入力したとしても、文字列として入力されるので、これをint関数で整数に変換します。
int関数については「Pythonで計算をしよう」で説明しました。
整数に変換をしないとif文で判定ができなくなりますので、このプログラムではint関数で変換してください。
次にif文について説明します。 この例では外側のif文でmonthの数値が1から12までのどの数値なのかを確認します。
次に内側のif文で入力させたdayの値により分別をします。
例えば1月は山羊座か水瓶座なので,1月19日までが山羊座で、1月20日からが水瓶座になります。
ですので、入れ子の中の条件式は「and」で連結して、という表現で書きます。
どれにも当てはまらない時には「間違い」が出力されます。
このように内側のif文は外側のif文での条件をさらに絞りたい場合に使用します。
つまり、入力された月は1月なので、さらに入力された日をもとに山羊座か水瓶座のどちらかを調べましょうと言うことです。
補足ですが、以下の赤枠の箇所は月の入力が間違えていた時に出力されますので、外側のif文のelseになります。 月に89などの数値が入力されれば以下のように「間違い」が出力されます。