日本語スクリプト言語wythonの最初の例 [wython]
四の五の言わず、さっさと動くものを作れ、という心の声が聞こえてきそうなので、昨日、いくつかの文法を処理できる最初のwythonを作った。
実際のスクリプトはこんな感じだ。
文字列「日本語」を、文字列型変数languageに代入する。 文字列「languageをprintする。」を表示する。 123を表示する。 整数型変数 x に5を代入する。 整数型変数 y に8を代入する。 x * 2 + y を計算して、整数型変数zに代入する。 「z = x * 2 + y」と表示する。 「あなたの名前を入力して下さい。」と質問して、その答えを文字列型変数nameに代入する。 「nameさん、こんちには」と表示する。 「体重を入力して下さい。」と質問して、その答えを文字列型変数weightに代入する。 文字列型のweightを実数型に直す。 「身長を入力して下さい。」と質問し、答えを文字列型変数heightに代入する。 文字列型のheightを実数型に直す。 height / 100 * height / 100 * 22 を計算して、実数型変数standard_weightに入れる。 (weight - standard_weight) / standard_weight * 100を計算して、実数型変数bmiに入れる。 「あなたの肥満度は、bmiです。」と表示する。
で、これをwyhtonにかけて変換し、実行してみた結果はこうだ。
日本語をprintする。 123 18 = 5 * 2 + 8 あなたの名前を入力して下さい。福田 福田さん、こんちには 体重を入力して下さい。68.2 身長を入力して下さい。173.0 あなたの肥満度は、3.578469です。
体重や身長は架空の数字なので、肥満度も僕のものではないことをお断りしておこう。
wythonのスクリプトをPythonに変換した結果のコードは次のようなものになっている。
#!/usr/bin/env python # -*- coding:euc-jp -*- language = "日本語" print "%sをprintする。" % (language) print 123 x = 5 y = 8 z = x * 2 + y print "%d = %d * 2 + %d" % (z, x, y) name = raw_input("あなたの名前を入力して下さい。" ) print "%sさん、こんちには" % (name) weight = raw_input("体重を入力して下さい。" ) weight = float(weight) height = raw_input("身長を入力して下さい。" ) height = float(height) standard_weight = height / 100 * height / 100 * 22 bmi = (weight - standard_weight) / standard_weight * 100 print "あなたの肥満度は、%fです。" % (bmi)
まだ制御構造はないが、これだけでも、そこそこのプログラムが組める。
現状での仕様は、次のようなものだ。
- 変数名はPythonと同様、英字に始まり、英数字または下線が0個以上つづくもので、その変数名の前に型を指定する。
- 型は、文字列型、整数型、実数型、文字型のいずれかである。
- 文字列リテラルは、全角の'「'と'」'で囲む。その文字列の中に変数名を使うことが出来る。
- 式は現在のところ、そのまま書く。ただし、文字列リテラルの演算はまだサポートしていない。文字列を連結したいのであれば、それぞれを変数に代入し、その変数同士を足すこと。
- サポートしている文は、「表示する。」、「代入する。(入れる、とも書ける)」のみ。
- サポートしている組み込み関数は、「質問し(=raw_input())」、型変換(整数型へ(=int())、文字列型へ(=str())、実数型へ(=float())の変換のみで、リテラルではなく、変数を引数にとり、その同じ変数に戻す。
コメント 0