IF文(条件分岐)~コンピューターに知恵をあたえる~
7月3日の水曜日のクラブ活動は、新メンバーの加えてのスタートです。
Contents
メニュー
- 18時00分~18時20分 タイピング練習
- 18時20分~18時40分 マウス練習
- 18時40分~19時50分 IF文の学習
- 19時50分~20時00分 あとかたづけ
タイピングとマウスの練習
新しいメンバーは、大人の方です。かつて経験があるということで、ある程度自走できる方です。したがって、わたしが足りないと思うところを補うように進めていきます。
タイピングも、体験のときにコツを伝えたら、2週間後の今回には、一般に十分なほどの速度でタイピングできていました。ツールは、下の「無料タイピング」を使って練習をしています。
タイピングがスムーズにできていると、プログラミングに集中して取り組めます。新しいメンバーには、早々にタイピング練習を卒業してもらって、プログラミングに進んでもらいます。
プログラムでコンピューターに知恵をあたえるのはIF文
わたしがかつて読んだ本で、印象的な表現があります。少し長くなりますが、要旨を紹介します。
ゴーレムを知っていますか? ゴーレムとは、土の塊が呪文で動くようになったロボットのような存在です。主人の命令を理解し、怪力をふるう泥人形です。
コンピューターの頭脳であるCPU(中央演算装置)は、シリコンでできています。シリコンは、そのへんの石や土の主成分でもあります。CPUが命令をこなして、さまざまなプログラムを動かすのは、さながら現代版のゴーレムといえます。
現代版ゴーレムに、プログラムで力と知恵をあたえるのは人間です。力は、繰り返し構文(FOR文)であたえます。知恵は、条件分岐構文(IF文)であたえます。
プログラムの重要な考え方の一つに、構造化定理という重要な考え方があります。かんたんに言うと、「すべてのプログラムは「順次」「繰り返し」「分岐」の3つの構文で書ける」ということです。IF文は、「分岐」を実現する超重要な構文なのです。
重要、重要と連呼しましたが、PythonのIF文の使い方はかんたんです。
if (条件式):
(条件式が成立するときの処理)
else:
(条件式が成立しないときの処理)
注意事項は、(条件式)が「成立する」「成立しない」の二択で答えられる文になっていることです。このあたり、ExcelのIF関数でもおなじです。IFが使えない人は、条件式の設定が間違っているのを、これまでたくさん見てきました。
反対を言えば、条件式を適切に設定できれば、IF文は使えます。
写真は、IF文を使ってかんたんなプログラムを動かしている様子。
大人が頭で理解するのにくらべて、子供はすぐに肌感覚で習得するように思います。つまり、教え方を変えなければならないのです。むかし、師事していた書道の先生が雑談の中で、大人と子供の違いについて話していたのを思い出します。
Pythonはインデント(字下げ)が大切
Pythonの特徴として、インデント(字下げ)を強制していることがあります。たとえば、先程のIF文は2行目と4行目を字下げしないとエラーになります。
if (条件式):
(条件式が成立するときの処理)
else:
(条件式が成立しないときの処理)
C言語やJavaではインデントが強制されません。インデントを一切使わなくても、正常に動くプログラムを書けます。ただし、たいへん読みにくいプログラムコードになります。
Pythonは、インデントを文法で強制することで、だれが書いても一定程度読みやすいプログラムコードになります。
ちなみに、インデントは「スペース4個」「タブ1個」「スペース2個」などいろいろ宗派があります。光都ICTクラブでは、まず基本である「スペース4個」を学びます。あとは、上達するに連れ、自分で選択すればよいと考えています。
実は層が厚い光都ICTクラブの講師陣
光都ICTクラブは、わたしが一人で運営しているわけではありません。下の写真は、運営スタッフ・講師の一人です。
なんだかんだ言って、わたしがプログラムの基礎を学習したのは20年以上まえです。初学者の気持ちで教えることはできません。
彼がプログラムを学習したのは、わたしに比較して最近です。自分が苦労したところ、つまづいたところを、メンバーと感覚を共有しながら教えることができます。もちろんプログラムの理解は折り紙付きです。
メンバーも、わたしの解説だと首をひねっていたのが、彼の解説だと腹オチすることがしばしばあるようです。
この層の厚さが光都ICTクラブの強みです。