CHAPTER 1 · 1 LESSONS · 13 問

文法のきほん

値を表示する、計算する、名前をつける、条件で分ける。プログラムの土台になる書き方をひととおり。

プログラムというと、何か複雑なものを想像するかもしれない。でも中身をほどいていくと、やっていることは驚くほど少ない。値を扱い、名前をつけて覚えておき、状況によってやることを変える。この章で覚えるのは、その3つだけだよ。

最初にやるのは「画面に出す」こと。print と書いて、出したいものをカッコに渡す。それだけで文字も数字も表示できる。地味に見えるけれど、これは書いたコードが本当に動いたかを確かめる唯一の手段になる。この先ずっと使い続けるので、ここで手になじませておこう。

次が 値の種類 の話。Python では、文字を扱うときは "こんにちは" のように引用符で囲み、数を扱うときは 100 のようにそのまま書く。見た目が似ていても、"100"100 はコンピュータにとって別物だ。文字どうしを + でつなぐと連結になり、数どうしを + でつなぐと足し算になる。そして文字と数を + でつなごうとすると、Python はきっぱり断ってくる。ここは初学者が最初につまずくところだよ。

そして 変数。同じ値を何度も書くかわりに、名前をつけて置いておく。nedan = 150 と書けば、以後は nedan と書くだけでその値を呼び出せる。値を1か所で直せば全部に反映されるので、書き直しが一気に楽になる。名前のつけ方にもコツがあって、a より nedan のほうがいい。三日後の自分が読んで分かるかどうかが基準だよ。

章の途中で 字下げ(インデント) を独立して扱う。Python では行の先頭の空白が文法そのもので、他の多くの言語が波かっこ { } でやっていることを、Python は空白の深さでやっている。読みやすさのためにこう決まっているのだけれど、慣れるまではエラーの原因になる。ここだけは早めに、しっかり見ておこう。

章の後半は 条件分岐。ここでプログラムがはじめて「判断」を持つ。if を書いて、条件が成り立つときだけ中の処理を動かす。成り立たないときの処理は else、もう一段階の分岐は elif。条件そのものは >== といった比較で作り、andor で組み合わせる。記号ではなく英単語で書くのが Python らしいところだよ。

条件分岐でよくつまずくのが、=== の取りちがえ= は「右の値を左に入れる」で、== は「左と右が同じか」を尋ねる。まったく別の意味なので、書きまちがえると意図しない動きになる。この章で体に入れておこう。

この章を進めるときのコツをひとつ。エラーが出たら、まずそのまま読んでみること。英語だからと閉じてしまう人が多いけれど、書いてあることは意外と単純だ。NameError: name 'x' is not defined なら「x なんて知らない」、つまり変数を作る前に使っているか、名前を打ちまちがえている。エラーメッセージは敵ではなく、いちばん近くにいる先生だよ。

この教材では、エラーを Python が出したそのままの形で見せている。日本語に直したり、やさしく言いかえたりしていない。実際の開発で目にするのはこの形だから、早いうちから慣れておいてほしいからだよ。

ここまで終われば、「値を受け取って、条件で分けて、結果を出す」という形のプログラムが書けるようになる。まだ小さなプログラムだけれど、この形はどれだけ大きなアプリになっても変わらない。何万行のシステムでも、やっていることは値を受け取り、判断し、結果を出すことの積み重ねだよ。

なお、このコースは書いている途中で、レッスンは上から順に増えていく。用意できているところまでで止まっていても、それは行き止まりではなく工事中というだけだよ。

この章のレッスン

文字と数を表示する

  1. 01はじめてのPythonprint を使って、書いたものを画面に表示してみよう。 問題へ

これがこのコースの最後の章。