(✿✪‿✪。)ノコンチャ♡
前回まで、
初級編としてプログラミングの基礎を学んできました。
さて、今回からはプログラミングの中級編をスタートします。
内容は、
プログラムの醍醐味である「分岐」「繰り返し」について、
学んでいきます。
プログラムは特殊な言語で記述されますが、
楽しく学ぶためには、
その記述された『コード』を読めるようになることが近道です。
では、頑張っていきましょう!
条件分岐
プログラムに欠かせないのが『分岐』です。
ある条件を満たしたときにだけ実行される分を
『条件分岐』といいます。
True(真)とFalse(偽)
『True』は日本語で「真」であり、
条件を満たした状態を表します。
『False』は日本語で「偽」であり、
条件を満たしていない状態を表します。
これらは、
数値や文字列と同じ「値」の一種であり、
『ブール値』と呼びます。
Pythonでは、
「True」か「False」を返す関数やメソッド、演算子があります。
つまり、
これらとTrueかFaiseかで分岐する文を組み合わせて、
様々な『条件分岐』のプログラムを記述します。
入力されたのは数値?
初級編で学んだ input関数を使うと、
ユーザーがキーボードから入力します。
例えば、
売上金を入力させたかったのに、
タイプミスでアルファベットが含まれてしまったとします。
本来は、入力された売上金から様々な計算をさせたかったのに、
アルファベットが入っていて計算できず、
「エラー」となってしまいます。
つまり、
数字と英文字が混在した「文字列」が入力されたために、
計算できずに「エラー」が発生するのです。
その「エラー」を無くすためには、
入力された文字列が「数値」でなければなりません。
従って、
入力された文字列の中身が『数字だけ』であれば、
「数値」であると判断することができます。
その判断をしたい場合には、
『isdigit』メソッドを使います。
isdigitメソッドの記述
isdigitメソッドは、文字列用のメソッドです。
文字列の中身が数字の0~9だけの場合は『True』、
そうでない場合は『False』を返します。
’文字列’.isdigit()
このように記述します。
このメソッドは引数を受け取らないので、
メソッド名の後にカッコだけを記述します。
ここで注意すべきことは、
このメソッドの働きが
「数字だけかどうか?」
を調べるだけだということです。
つまり、
マイナス「-」を含んだ負の数字や小数点「.」を含んでいたら、
『False』を返します。
isdigitメソッドは、
正の整数であるかどうかしか判断できません。
isdigitメソッドの使用
例えば、
input関数で入力された文字列を判断して、
結果を表示させたい場合の記述は以下の通りです。
test=input('入力してください’)
print(test.isdigit())
ここで、
正の整数を入力すると『True』が表示されます。
それ以外の文字列であれば『False』になります。
実行すると、
それでは次に、
入力された文字列が「正の整数」だったら計算をする、
というような、
条件分岐の『if 文』を使ったプログラミングを学びましょう。
条件分岐の『if 文』
『if 文』は条件分岐の基本です。
if の後に記述した式や関数などの結果が「True」だったら、
行頭を字下げして記述された処理を実行します。
「false」だったら、その処理をスキップして次に進みます。
『if 文』の記述
if␣式や関数など:
␣␣␣␣実行する処理
このように、
「if」の後にスペース(␣)を入れて式や関数などを記述します。
行の終わりには「:(コロン)」、
つまり、
『もし、式や関数などが True(正)だったら以下の処理を実行せよ』
という意味のプログラムになります。
実行する処理は、行頭を字下げして記述します。
字下げ幅は半角スペース4つですが、
これはキーボードの「Tabキー」を押すことで字下げできます。
この字下げを『インデント』と呼びます。
では実際にプログラミングをしてみましょう。
①文字列が数値だったらメッセージを表示させるプログラム例
もし、数値が入力された場合は、
「これは数値」というメッセージを表示させることとします。
test=input('入力してください')
if␣test.isdigit():
␣␣␣␣print('これは数値')
実行すると、以下のように表示されます。
次に、計算結果を表示されてみましょう。
②数値だったら計算して結果を表示させるプログラム例
test=input('入力してください')
if␣test.isdigit():
␣␣␣␣print(int(test)*1.1)
実行すると、以下のように表示されます。
インデントとブロック
前述の通り、
if 文で正だったら実行する処理は、
行頭を字下げして記述することを学びました。
この字下げを『インデント』と呼びますが、
この実行する処理は増やすことができます。
つまり、
インデントして記述した処理は、
何行でも実行させることができるのです。
このインデントして記述された範囲を『ブロック』と呼びます。
従って、
if 文で条件を満たしていれば、
インデントされたブロックの処理が実行されますが、
条件を満たさなければ、
ブロック範囲の処理をスキップして、
「インデントされていない行」から実行されるのです。
ブロック内?ブロック外?
では、
実際にブロック内で実行された処理か、
ブロック外で実行された処理か、
がわかるプログラミングを実行してみましょう。
test=input('入力してください')
if␣test.isdigit():
␣␣␣␣print('ブロックの処理開始')
␣␣␣␣print(int(test)*1.1)
␣␣␣␣print('ブロックの処理終了')
print('ブロック外の処理')
これを実行すると、
さいごに
今回は、
『if 文』を使った条件分岐のについてお話してきましたが、
理解して頂けましたか?
実際にプログラムを記述して、実行した結果を見ることは、
理解を深めるには当然必要です。
つまり、
教科書を読んで理解するのと、
実際に問題を解いて答えを導くのとでは、
理解度に差が出てしまうものです。
プログラミングとは、
一行、一行を理解することで、
実行させたい処理を正確にコンピューターに伝えることです。
その一行、一行を学んでいくことが私の実践記の目的です。
しかも、あなたと一緒に学んでいけたら、
より楽しくなります。
次回は更に分岐させた処理について、
学んでいきたいと思います。
ではまた、お会いしましょう。
☆ ☆ ☆ 中級編スケジュール ☆ ☆ ☆