わかり易い例で説明していきますので、テキストから離れた 説明になりますが、ご了承ください。
関数(function)は、def 文を用いてを定義することができます。
下記の例では、a と b という二つの引数を受け取り、その 足し算、引き算を表示する関数 keisan() を定義し、 それを呼び出しています。
def keisan(a, b): # 仮引数 a,b
ans1 = a + b
ans2 = a - b
print ("a + b=" ,ans1)
print ("a - b=" ,ans2)
keisan(10, 20) # 実引数 10 , 20
return は関数の戻り値を指定します。 関数は、複数の値を戻すことができます。
xxxxxxxxxx
def keisan(a, b):
ans1 = a + b
ans2 = a - b
return(ans1,ans2)
a1,a2 =keisan(10, 20)
print("a1=",a1)
print("a2=",a2)
下記の様に、キーワード付き引数を指定することができます。 キーワード付き引数は関数定義側で、デフォルトの値を指定 することができます。
xxxxxxxxxx
def repeat_msg(msg, repeat=3):
for i in range(repeat):
print (msg)
repeat_msg('Good') # Good,Good,Good
repeat_msg('Love', repeat=4) # Love,Love,Love,Love
● 関数で使う変数の有効範囲 p240
xxxxxxxxxx
def calc() :
v = 2 # v は,関数calc() の中のローカル変数
ans = 3 * v
print(ans)
calc()
● 関数の外で作った変数(グローバル変数)を利用する。 p241
xxxxxxxxxx
v = 2
def calc():
ans = 3 * v
print(ans)
calc()
print(v)
● 複数行の関数の外で作った変数を利用する。 p241~p242
xxxxxxxxxx
v = 2
def calc():
v = v * 10 #この式がエラーをもたらす。
ans = 3 * v
print(ans)
calc()
print(v)
上記プログラムの1行目の、変数v はグローバル変数です。 しかし、calc()の中で「v = v * 10」の式を書いた時点で、 calc()の中のvはローカル変数と解釈されます。すると式の 右項の「v * 10」のまだ値の定まっていない未定義の変数に なってエラーになるのです。
● 引数のまえに*をつけると、引数には渡された値がタプルに まとめて入ります。 p246
xxxxxxxxxx
def fruit(*args):
print(args) # ("りんご","みかん","いちご","バナナ")
fruit("りんご","みかん","いちご","バナナ")
● **はキーワード引数を辞書で受け取ります。 キーワード引数の引数名が辞書のキーの値になり、引数の値が そのキーの値になります。 p247
xxxxxxxxxx
def fruit(**kwargs):
print(kwargs) # キーワードから辞書が作られます。
fruit(apple=2, orage=3, banana=1)
=================================================
p250~P252 は省略