SSブログ

次はループをインプリメント [wython]

日本語スクリプト言語wythonの実装を続ける。今日は、繰り返しを処理できるようにした。wythonはPythonのラッパーなので、繰り返しには、while文とfor文がある。このうち、for文は特に日本語でどう表現したらいいか分からないので、後回しにして、簡単にできるwhile文と、forを使ううちでも、ある数からある数まで数える、range()を使う場合を取り上げる。

 具体的に、wythonのスクリプトを示すと、

整数型変数sumに0を代入する。
整数型変数nに0を代入する。

nが10以下の間、
	sumにnを足す。
	nに1を足す。

sumを表示する。

sumに0を代入する。

1から10までnを変化させながら、
	sumにnを足す。

sumを表示する。

整数型変数mに0を代入する。

1から10まで変化するnの各々について、
	「n : 」を改行せずに表示する。
	1からnまでmを変化させつつ、
		「*」を改行せずに表示する。
	改行する。

これをPythonに変換すると、

#!/usr/bin/env python
# -*- coding:euc-jp -*-

sum = 0
n = 0
while n <= 10:
	sum += n
	n += 1
print sum
sum = 0
for n in range(1, (10 + 1)):
	sum += n
print sum
m = 0
for n in range(1, (10 + 1)):
	print "%d : " % (n),
	for m in range(1, (n + 1)):
		print "*" ,
	print
となる。結果は、
55
55
1 :  *
2 :  * *
3 :  * * *
4 :  * * * *
5 :  * * * * *
6 :  * * * * * *
7 :  * * * * * * *
8 :  * * * * * * * *
9 :  * * * * * * * * *
10 :  * * * * * * * * * *

である。

 繰り返し以外にも若干追加をしているので、今日実装した機能の仕様をまとめておこう。

  1. while文は、「〜の間、」をキーワードにする。
  2. for文のうち、数え上げのrange()を使う文は、「〜から〜まで」を最初に記し、そのあとは変数名を一つ組み込むこととして、日本語表現は、特に制約を設けない。実際、上の例では、「nを変化させながら」「変化するnの各々について」「nを変化させつつ」というように、日本語が自然になるように言い換えている。
  3.  x += n タイプの複合代入文は、「足す」と「引く」だけについては、「xにnを足す」「xからnを引く」と表記できる。
  4. 「改行せずに表示する」という動詞句を新設。これはprint文の最後にカンマを出力し、改行しない表示に対応した。
  5. 一方「改行する。」という文も新設し、これはprintのみに変換され、改行を出力する。
  6. 「代入する。」場合にも、最初に変数宣言したあとは、型に言及せずに変数名だけを使用できるようにした。

以上の仕様は、全て上の例文で使われている。

次は、リスト処理としてのfor文と、できればリストの表現とを考えたい。


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

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

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