SSブログ

wythonが話題に [wython]

なんとwythonが「愛しいごはんの炊ける間に」で話題になりました。
ありがとう。


日本語スクリプトの例8 [wython]

cities_list = ['東京','大阪','名古屋','京都','札幌','北九州','仙台']
number_of_cities = len(cities_list)
i = 1
while i < number_of_cities:
    print "cities_list[%d]: %s" % (i, cities_list[i])
    print cities_list[-1]
    print cities_list[1:4]
    print cities_list[5:]
    i += 1

for i in range(number_of_cities):
    print '%d番目の都市は%sです。' % (i, cities_list[i])



リスト・オブジェクトcities_listをリスト[「東京」、「大阪」、「名古屋」、「京都」、「札幌」、「北九州」、「仙台」]で初期化する。
リストcities_listの項目の数を数えて、それを数値オブジェクトnumber_of_citiesに保存する。
インデックスiを1で初期化する。
インデックスiがnumber_of_citiesよりも小さい間、以下を繰り返す。
    「cities_list[{数値i}] : {文字列cities_list[i]}」を表示する。
    リスト・オブジェクトcities_listの-1番目の要素を表示する。
    リスト・オブジェクトcities_listの1番目から4番目の要素を表示する。
    リスト・オブジェクトcities_listの5番目以降の要素を表示する。
    インデックスiに1を足す。

数値iに、0からnumber_of_citiesまでの数を順に代入して、以下を繰り返す。
    「{数値i}番目の都市は{文字列cities_list[i]}です。」と表示する。


日本語スクリプトの例7 [wython]

for i in range(5):
    print i
for i in range(1, 5):
    print i

print

my_univ = "Otani University"
for ch in my_univ:
    print ch

print

cities_list = ['東京','大阪','名古屋','京都','札幌','北九州','仙台']
for city in cities_list:
    print city

print



数値iに0から4まで順に代入しながら、以下を繰り返す。
    数値 i を表示する。
数値iに1から5まで順に代入しながら、以下を繰り返す。
    数値 i を表示する。

改行を表示する。

「My University」を文字列my_univに代入する。
文字chに文字列my_univの文字を順に代入しながら、以下を繰り返す。
    文字chを表示する。

改行を表示する。

リスト[「東京」、「大阪」、「名古屋」、「京都」、「札幌」、「北九州」、「仙台」]をリストオブジェクトcities_listに保存する。
文字列cityにリストcities_listの要素を順に代入しながら、以下を繰り返す。
    文字列cityを表示する。

改行を表示する。


日本語スクリプトの例6 [wython]

sum = 0
question = "数を入力してください:"
answer = raw_input("足算・引算を計算します。\n" + question)
while answer != "=":
    if answer[0] == "+":
        sum += int(answer[1:])
    elif answer[0] == "-":
        sum -= int(answer[1:])
    else:
        sum += int(answer)
    answer = raw_input(question)
print "合計は、", sum, "です。"



数値オブジェクトsumを0に初期化する。
「足し算・引き算を計算します。
数を入力して下さい。」を表示する。
キー入力を受け取り、文字列オブジェクトanswerに保存する。
文字列answerが「=」になるまで、以下を繰り返す。
    文字列answerの1文字目の文字を文字列オブジェクトfugouに保存する。
    文字列answerの2文字目以降を整数に直して、数値オブジェクトnumberに保存する。
    もし、文字列answerの1文字目が「+」であるならば、
        文字列answerの2文字目以降を整数に直して、sumに足す。
    またもし、文字列answerの1文字目が「-」であるならば、
        文字列answerの2文字目以降を整数に直して、sumから引く。
    そうでなければ、
        文字列answerを整数に直して、sumに足す。
「合計は{数値sum}です。」と表示する。


日本語スクリプトの例5 [wython]

str = "Wython is a Japanized Python."
i = 0
length = len(str)
while i < length:
    print str[i]
    i += 1


「Wython is a Japanized Python.」を文字列strに保存する。
数値iを0に初期化する。
文字列strの長さを測って、その結果を数値lengthに保存する。
数値iが数値lengthよりも小さい間、以下を繰り返す。
    文字列strの i 番目の文字を表示する。
    数値iに1を足す。


日本語スクリプトの例4 [wython]

sum = 0
question = "数を入力して下さい:"
answer = raw_input("合計を計算します。\n" + question)
while answer != "":
    sum += int(answer)
    answer = raw_input(question)
print "合計は、", sum, "です。"



数値オブジェクトsumを0に初期化する。
文字列オブジェクトquestionに文字列「数を入力して下さい。」を保存する。
「合計を計算します。」と改行と文字列questionとを表示する。
キー入力を受け付け、それを文字列answerに保存する。
文字列answerが空になるまで、以下を繰り返す。
    文字列answerを整数に直して、数値sumに足す。
    文字列questionを表示する。
    キー入力を受け付け、それを文字列answerに保存する。
「合計は」とsumと「です。」とを表示する。


日本語スクリプトの例3 [wython]

print "-----------------------------------------"
print "**cm ←→ feet 単位換算プログラム**"
print "-----------------------------------------"
print "これは、センチメートルとフィートの単位を相互に換算するプログラムです"
print
print "換算したい単位を選んでください"
print "1 センチメートル → フィート"
print "2 フィート → センチメートル"

which = raw_input("? ")

if which == '1':
    cm = raw_input("換算したい数値を入力してください: ")
    cm = float(cm)
    answer = cm / 30
    print cm, "cmは", answer, "feetです。"
elif which == '2':
    feet = raw_input("換算したい数値を入力してください: ")
    feet = float(feet)
    answer = feet * 30
    print feet, "feetは", answer, "cmです。"
else:
    print "「1」か「2」を入力してください"


「-----------------------------------------
**cm ←→ feet 単位換算プログラム**
-----------------------------------------
これは、センチメートルとフィートの単位を相互に換算するプログラムです

換算したい単位を選んでください
1 センチメートル → フィート
2 フィート → センチメートル
? 」を表示する。

キー入力を受け取り、それを文字列whichに保存する。
もし、文字列whichが「1」ならば、
    「換算したい数値を入力して下さい。」と表示する。
    キー入力を受け取り、それを文字列cmに保存する。
    文字列cmを実数に直して、それを数値cmに保存する。
    cm / 30を計算して、その結果を数値answerに保存する。
    cmと「cmは、」とanswerと「feetです。」とを表示する。
あるいはもし、文字列whichが「2」ならば、
    「変換したい数値を入力して下さい。」と表示する。
    キー入力を受け取り、それを文字列feetに保存する。
    文字列feetを実数に直して、それを数値feetに保存する。
    feet * 30を計算して、その結果を数値answerに保存する。
    feetと「feetは、」とanswerと「cmです。」とを表示する。
そうでなければ、
  「1か2を入力して下さい。」と表示する。


日本語スクリプトの例2 [wython]

height = raw_input("あなたの身長は、何㎝ですか?")
height = float(height)
weight = raw_input("あなたの体重は、何㎏ですか?")
weight = float(weight)

standard_weight = ((height / 100) ** 2) * 22
fat = (weight / standard_weight - 1) * 100

print "あなたの体重は、", weight, "Kg"
print "標準体重は", standard_weight, "Kg"
print "肥満度は、", fat, "%です。"

if fat > 10:
    print "アチャー!太リスギダロー。ソンナンダッタラ、塊作レナイヨ。"
elif fat < -10:
    print "ヤセ過ギ!死ンデモ王様ノセイデハナイヨ。"
else:
    print "標準体重ノ許容範囲デス。ヨカッタネー。デモ若干ツマラナイネ。。"


「あなたの身長は何cmですか。」と表示する。
キー入力を受け付けて、それを文字列heightiに保存する。
文字列heightを実数に直して、数値heightに保存する。
「あなたの体重は何Kgですか。」と表示する。
キー入力を受け着いて、それを文字列weightに保存する。
文字列weightを実数に直して、数値weightに保存する。

((height / 100) ** 2) * 22を計算し、その結果を数値standard_weightに保存する。
((weight / standard_weight - 1) * 100)を計算し、その結果をfatに保存する。

「あなたの体重は」、weight、「cmです。」と表示する。
「あなたの標準体重は」、standard_weight、「kgです。」と表示する。
「あなたの肥満度は」、fat、「kgです。」と表示する。

もし、肥満度fatが10より大きいならば、
     「アチャー!太リスギダロー。ソンナンダッタラ、塊作レナイヨ。」と表示する。
あるいはもし。肥満度fatが-10より小さいならば、
     「ヤセ過ギ!死ンデモ王様ノセイデハナイヨ。」と表示する。
そうでなければ、
     「標準体重ノ許容範囲デス。ヨカッタネー。デモ若干ツマラナイネ。。」と表示する。


日本語スクリプトの例1 [wython]

answer = raw_input("あなたの名前は何ですか?")
print answer, "ちゃん、今後もよろすく。"

number = raw_input("本体価格を入力して下さい")
price = int(number) * 1.05
print "税込価格は", price, "円です。"



「あなたの名前はなんですか」と表示する。
キー入力を受け取って、文字列answerに保存する。
answerと「ちゃん、今後もよろしく」とを表示する。

「本体価格を入力して下さい。」と表示する。
キー入力を受け取って、文字列numberに保存する。
文字列numberを整数にして、数値numberに保存する。
数値numberを1.05倍し、その結果を数値priceに保存する。
「税込み価格は」とpriceと「円です」とを表示する。


Pythonプログラムを日本語に書き直す [wython]

wythonを作る場合、実は作業の大半は、どう日本語化するか、どういう日本語の構文を用意するかという問題に帰着する。

これがなかなか決まらない。wython言語仕様メモをいろいろ書いては見たが、具体的なスクリプトで考えないと、ああでもない、こうでもない、ということになって、決め手がない。

初心者向けに必要な構文や関数のみを処理できればいいので、文法そのものを日本語化することまでは考えていない、というか、そういう時間的な余裕はないので、取り敢えず、入門用のPythonスクリプトを全部日本語に直してみて、そこから言語仕様を考えた方がよさそうだ。

これから、少しずつ、このブログにPythonスクリプトの日本語バージョンをアップしていこうと思う。


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