SSブログ

日本語スクリプト言語wythonにおけるデータ型 [wython]

 一般にスクリプト言語では、変数の型を宣言しなくていいことになっている。そもそも、変数そのものに型はなく、その変数に代入されている値の方に型があるので、変数宣言は型の宣言をする必要がないのである。

 変数に型がないことにより、スクリプト言語の柔軟性や効率のよさが生まれてくるのだろう。しかし、データの方には型があり、その型によってできる演算に違いがあったりする(当然のことだが)。型は明示的に宣言されないが、データの代入により、自動的に型が宣言されているとも言える。このことは、しかし、初心者にとっては、むしろ躓きの石になっているような気がする。

 データに型があり、その型によって、可能な演算が決まっている、ないしは使える関数が違っている、ということを初心者に強く意識してもらうためには、むしろ、型を明示的に宣言した方がいいのではないだろうか。型を意識的に書くことで、データに型があり、それによってできることが違ってくる、ということが意識されるようになるのである。

 wythonでは、初心者向けに次のようなデータ型を考えている。

  1. 文字列型
  2. 整数型
  3. 実数型
  4. リスト型
  5. 辞書型
  6. ファイル

最後のファイルは、ファイル型ではあるが、表現上は、「ファイル変数」という言い方をしようと思う。

 wythonでは、正規表現は当面サポートしないので、正規表現オブジェクトを保存する変数は必要ない。また、文字列型とは別に文字型も考えられるが、Pythonでは、特に文字列と文字とを区別しないので、ここでも1文字の文字列が文字である、と考えることにする。

 型は、最初に変数に代入するときに、宣言することにする。

文字列「wythonは楽しい」を文字列型変数strに代入する。

1 + 2 + 3 + 4 + 5を計算して、その結果を整数型変数sumに代入する。

最初に型を宣言しておけば、その変数名と型を連想配列(あるいは辞書型)に入れておけるので、後でその変数を参照したときに、その型が何であるかが分かる。

 実際「表示する」という構文でも、表示内容に変数名が含まれている場合、それを%による書式指定文字列にしたいのだが、そうするためには、%sなのか、%dなのか、%fなのか、等の書式指定の違いは、型の違いに基づく。

 また上に挙げたように、宣言の仕方も、タイプ量がやや多いが、日本語として自然な文となっている。コンパイラをCで書く場合には、変数名や関数名など、名前を登録しておくテーブルが必要になり、その管理が大変だが、Pythonでは、辞書型の変数がその役目を担うことになっているが、これは非常に使いやすいデータ型なので、テーブルを管理するなどという難しいことはしないでいいのが、うれしい。

 このように型を代入時に宣言することにより、文字列リテラルの中に、変数名を直接記入することができるようになる。

「今日はtoday日です。」と表示する。

という場合、最終的に

print "今日は%s日です。" % (today)

と変換されることになる。つまり、変数部分は、%のあとのデータの型を指定するところで指定する。あとは、たいてい機械的に処理できる構文になっている。

 そんなこんなで、昨日の記事を既に大幅に訂正する必要が出てきた。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。