IF文(条件分岐)~コンピューターに知恵をあたえる~

7月3日の水曜日のクラブ活動は、新メンバーの加えてのスタートです。

メニュー

  • 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クラブの強みです。