wythonに取り敢えず関数定義を実装 [wython]
関数を定義できるようにすると、その関数内でローカルな変数を使えるようにする必要があるし、引数もそのローカルな変数になる。それをインプリメントしないと本当は使えないんだが、とりあえず、関数を定義し、それを呼び出すことができるようにした。
たとえば、
華氏温度から摂氏温度を計算する関数f2c(f)を定義する。 (f - 32) * 5.0 / 9.0を計算して、その結果を返す。 指定された数n回だけ*を表示する関数star(n)を定義する。 nが0より大きい間、 「*」を改行せずに表示する。 nから1を引く。 改行する。 ##メインのプログラム 華氏温度を表す整数型変数fに-20を代入する。 摂氏温度を表す実数型変数cに0を代入する。 「華氏 摂氏」と表示する。 fが100よりも小さい間、 関数f2c(f)を呼び出し、その結果をcに代入する。 「f c」を表示する。 fに20を足す。 整数型変数iに0を代入する。 1から10までiを変化させながら、 「i:」を改行せずに表示する。 関数star(i)を呼び出す。
を変換すると、
#!/usr/bin/env python # -*- coding:euc-jp -*- def f2c(f): return (f - 32) * 5.0 / 9.0 def star(n): while n > 0: print "*" , n -= 1 print # ##メインのプログラム f = -20 c = 0 print "華氏 摂氏" while f < 100: c = f2c(f) print "%d %f" % (f, c) f += 20 i = 0 for i in range(1, (10 + 1)): print "%d:" % (i), star(i)
となる。実行すると、
華氏 摂氏 -20 -28.888889 0 -17.777778 20 -6.666667 40 4.444444 60 15.555556 80 26.666667 1: * 2: * * 3: * * * 4: * * * * 5: * * * * * 6: * * * * * * 7: * * * * * * * 8: * * * * * * * * 9: * * * * * * * * * 10: * * * * * * * * * *
となる。今回の仕様は
- 関数定義は、「関数〜を定義する。」をキーワードに行う。〜には、関数名と引数をPythonと同じように書く。
- 関数呼び出しは、戻り値がない場合は、「関数〜を呼び出す。」とする。〜には上と同様の関数名と引数を指定する。
- 関数の戻り値を使う場合には、「関数〜を呼び出して、その結果を変数〜に代入する。」と使う。ただし、これはそもそも代入文のままなので、関数とは関係なしに機能する。
- 関数から戻り値を返すには、「〜を返す。」とする。〜から日本語を削除したものにreturnを前置きした文に変換する。
といったところだ。上にも言ったように、ローカル変数を使えるようにするのは次回回し。
コメント 0