これ以降は、教科書の Lesson 3 の作業を進めてください。
さて、これで教科書の p.56 「3.6 レッスンのまとめ」まで来ました。そこに書かれていることが理解出来ますか?
納得がいけば、p.57 の「練習」をやってください。
プログラミング言語は日本語などの自然言語と同様に、文法規則以外の「慣習」があります。以下に列挙しておきます。
もちろん「慣習」ですから、これで全部、といった定義はありません。緩やかに多様なレベルの慣習があります。命名規則、コーディングルール、といったものは特定プロジェクト、企業内での「方言」のような形でも存在します。少しずつ、その場のものに慣れていけば良いでしょう。
教科書 p.31 には文法上の制約事項が書かれています。英字(A-Z, a-z)、アンダースコア( _ )、数字(0-9)が使える、などです。そこにコード上意味を持つ言葉を使うことはできませんとサラッと書いてある(その後に説明なし)ことが結構重要なので注意してください。これ、その名前が「既に何か別の用事で使われている」という意味です。
例えば print( ) 関数を使ってきましたが、「 print 」という名前の変数を使うべきではありません。こんなことが起きてしまいます。
>>> num = 10 <<< 変数 num を用意
>>> print(num) <<< print( ) してみた(もちろん動く)
10
>>> print = 20 <<< 変数 print を作ってみた
>>> print(print) <<< print を print( ) してみると、、、
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable <<< 見事にエラー(整数型オブジェクトは呼び出せない?)
>>> print(10) <<< では 10 を print( ) してみても、、、
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable <<< 同じエラー。つまり print( ) 関数はもう使えない
>>>
恐ろしいことに Python は print = 20 という処理をそのまま通してしまい、print という名前の変数を作ってしまいます。その後、print といったら変数のことを指すようになり、print( ) 関数が使えなくなりました。(その代わり整数データ(20)を関数として呼び出そうとしてエラーになります。)
しかしPythonがどんな名前の関数を使っているか全部覚えていられません。なるべく気をつけるとして、もしうっかり使ってしまった場合にはエラーが出ますから、上のようなエラー(“is not callbale”)が出たら、このことを思い出してください。
予約語 |
---|
教科書では「コード上意味を持つ」と回りくどい説明になっていますが、本来言いたかったのは関数名との衝突問題ではなく、「 if 」「 for 」といった、Python プログラムの文法上、意味付けされた語句は使えない、ということです。この種の語を「予約語」と言います。教科書でこの計算機分野の専門用語を使わず、回りくどい説明となったのは、if 文や for 文がまだ登場していないからです。 |
積極的に調べる方法としてはインタラクティブモードで Python を起動して、help( ) 関数に聞いてみることができます。例えば print という名前を調べてみましょう。ビルトイン関数だ、と出てきますね。
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
(END)
最後の END は文字と背景色が反転していると思います。この表示が出ている時は、これ以上の表示はないので「 q (小文字の Q、quit のつもり)」を押せば元の >>> プロンプトに戻ります。
表示が長い時は END ではなく単に「 : (コロン)」が出ます。スペースキーを押せば次のページに進みますし、カーソルキーで上下にスクロールさせられると思います。最後の部分に到達すると END が出ますが、途中で「 q 」キーを押して終わらせることもできます。「 h (help のつもり)」で、キー操作の一覧が出ます。