if文、型チェック¶システムを作るとき、状況に応じて制御を変えることは一般的です。年齢入力欄があって、年齢が20代なら若者向けの商品紹介ページに行く、などです。ここでは、状況によって処理を変えるif文を扱います。初めに、キーボードからの入力を受け取るinput関数について説明します。以下のように記述すると、キーボードから数字を入力できるようになります。左辺は、入力された値を代入するものです。[1]:print("年齢を入力してください。")x=input()年齢を入力してください。14このようにして、xには26という値が入っています。input関数はあらゆる入力を文字として受け取ってしまいます。したがって、xには数字が入力されているように見えても、文字が入ってしまっています。そのため、計算しようとすると、以下のようにエラーが出ます。strこれを回避するためには、文字ではなく数値ですよと教えてあげる必要があります。このような操作をキャストと呼びます。整数に変換したい場合はint()、実数に変換したい場合はfloat()を使用します(整数と実数の違いがわからない人は自分で調べてください)。制約がない場合には、実数として扱えば良いです。[3]:res=float(x)+10print(res)24.0文字を実数にキャストしたので、エラーが出ずに計算することができました。inputで数字を入れた場合はキャストしなければいけない、と覚えておくといいと思います。inputとキャストのことがわかったので、if文の説明に移ります。入力された年齢が20歳未満であれば、あなたは未成年ですと出力するコードを以下に示します。[4]:print("年齢を入力してください。print("あなたは未成年です。")年齢を入力してください。10あなたは未成年です。後に条件を入れることで、for文と同じで、インデントされている領域を実行します。これで、20未満の数値を入力したとき、未成年だと言われたと思います。成人の場合には何も出力されません。これを回避するためには、elifを使用します。これは、「そうではなく、もし」という訳し方をします。[5]:print("年齢を入力してください。print("あなたは未成年です。print("あなたは成年です。")年齢を入力してください。27あなたは成年です。ここで記したように、大なり小なり記号の右にイコールをつけると、その値も含めることができます。上のコードは、20歳未満なら「未成年」といい、もしそうではなく20歳以上なら「成年」という意味があります。ところで、よくよく考えてみると、「20歳未満である」という条件が否定されれば、わざわざ「20歳以上か?」というチェックは必要ありません。このように、「そうでないならば」という文脈にしたい場合には、elseを用います。[6]:print("年齢を入力してください。print("あなたは未成年です。print("あなたは成年です。")年齢を入力してください。27あなたは成年です。使った場合も、elseも使った場合も、同じ出力になると思います。うまく使い分けることが必要です。ところで、if、elif、elseはすべて使うこともできます。以下のコードは、「年齢にマイナスが入力されたら警告を出し、そうではなく20歳未満なら未成年といい、そうでないなら成年という」機能を持ちます。[7]:print("年齢を入力してください。print("あなたは未成年です。print("あなたは成年です。")年齢を入力してください。マイナスの年齢はあり得ません!次のように、for文のなかにif文を入れることもできます。入力された数字が奇数か偶数かを判定し、奇数ならば「OddNumber」のリストにappend、偶数なら「EvenNumber」のリストにappendしています。偶数か奇数かの判定は、剰余演算により判定します。2で割ったときの余りが0と等しいならば偶数、余りが0ではないならば奇数と判定します。等しいかどうかは「==」、等しくないかどうかを判定するには「!=」を使います。int(input())という記述は、文字を即座に整数に変換するという意味があります。難しいですが、頑張って解読してみてください。