CHAPTER 1 · 1 LESSONS · 13 問
文法のきほん
値を表示する、計算する、名前をつける、条件で分ける。プログラムの土台になる書き方をひととおり。
プログラムというと、何か複雑なものを想像するかもしれない。でも中身をほどいていくと、やっていることは驚くほど少ない。値を扱い、名前をつけて覚えておき、状況によってやることを変える。この章で覚えるのは、その3つだけだよ。
最初にやるのは「画面に出す」こと。print と書いて、出したいものをカッコに渡す。それだけで文字も数字も表示できる。地味に見えるけれど、これは書いたコードが本当に動いたかを確かめる唯一の手段になる。この先ずっと使い続けるので、ここで手になじませておこう。
次が 値の種類 の話。Python では、文字を扱うときは "こんにちは" のように引用符で囲み、数を扱うときは 100 のようにそのまま書く。見た目が似ていても、"100" と 100 はコンピュータにとって別物だ。文字どうしを + でつなぐと連結になり、数どうしを + でつなぐと足し算になる。そして文字と数を + でつなごうとすると、Python はきっぱり断ってくる。ここは初学者が最初につまずくところだよ。
そして 変数。同じ値を何度も書くかわりに、名前をつけて置いておく。nedan = 150 と書けば、以後は nedan と書くだけでその値を呼び出せる。値を1か所で直せば全部に反映されるので、書き直しが一気に楽になる。名前のつけ方にもコツがあって、a より nedan のほうがいい。三日後の自分が読んで分かるかどうかが基準だよ。
章の途中で 字下げ(インデント) を独立して扱う。Python では行の先頭の空白が文法そのもので、他の多くの言語が波かっこ { } でやっていることを、Python は空白の深さでやっている。読みやすさのためにこう決まっているのだけれど、慣れるまではエラーの原因になる。ここだけは早めに、しっかり見ておこう。
章の後半は 条件分岐。ここでプログラムがはじめて「判断」を持つ。if を書いて、条件が成り立つときだけ中の処理を動かす。成り立たないときの処理は else、もう一段階の分岐は elif。条件そのものは > や == といった比較で作り、and や or で組み合わせる。記号ではなく英単語で書くのが Python らしいところだよ。
条件分岐でよくつまずくのが、= と == の取りちがえ。= は「右の値を左に入れる」で、== は「左と右が同じか」を尋ねる。まったく別の意味なので、書きまちがえると意図しない動きになる。この章で体に入れておこう。
この章を進めるときのコツをひとつ。エラーが出たら、まずそのまま読んでみること。英語だからと閉じてしまう人が多いけれど、書いてあることは意外と単純だ。NameError: name 'x' is not defined なら「x なんて知らない」、つまり変数を作る前に使っているか、名前を打ちまちがえている。エラーメッセージは敵ではなく、いちばん近くにいる先生だよ。
この教材では、エラーを Python が出したそのままの形で見せている。日本語に直したり、やさしく言いかえたりしていない。実際の開発で目にするのはこの形だから、早いうちから慣れておいてほしいからだよ。
ここまで終われば、「値を受け取って、条件で分けて、結果を出す」という形のプログラムが書けるようになる。まだ小さなプログラムだけれど、この形はどれだけ大きなアプリになっても変わらない。何万行のシステムでも、やっていることは値を受け取り、判断し、結果を出すことの積み重ねだよ。
なお、このコースは書いている途中で、レッスンは上から順に増えていく。用意できているところまでで止まっていても、それは行き止まりではなく工事中というだけだよ。
この章のレッスン
文字と数を表示する