step 8 関数 def

関数は、たとえば、a=len(b)だと、lenという関数で、bの中身の数がわかります。そういったものです。

def

def 関数名(引数): の後に文を書いて、定義します。


def SayHello():
    print "Hello"
SayHello()

Hello

3行目のSayHello()で、SayHello関数を呼び出しました。中身は、見ての通りです。

引数とは、関数にわたしてあげる値です。


def nibai(n):
    print n*2
nibai(5)

10

5を引数としました。nibai(n)で、5をnの中にいれます。あとは、見ての通りです。

文字の例です。


def Say(s):
    print s
a=Say("こんにちは")

こんにちは

引数を2つにしてみます。


def Plus(a,b):
    print a+b
Plus(10,7)

17

2つの引数を、aとbに入れて、足してprintしてますね。

return

returnを使うと、関数内で計算してりしたものを、返せます。戻り値といいます。


def Plus(a,b):
    return a+b
print Plus(10,7)

17

return で、a+b が戻ってきましたね。

変数に入れることも勿論できます。


def Plus(a,b):
    return a+b
s=Plus(10,7)
print s

17

もうひとつ例をみてみましょう。


def Big(n):
    return n*10
for i in range(7):
    print i,Big(i)

0 0
1 10
2 20
3 30
4 40
5 50
6 60

引数は、デフォルトを設定できます。


def SenPlus(n=10):
    return 1000+n
print SenPlus()
print SenPlus(200)

1010
1200

単なるSenPlus()だと、 n=10 となって、1010がでたわけです。

引数や戻り値は、リストでもかまいません。


def Two(a):
    x=[0]
    for i in range(a):
        x.append(i*2)
    return x
print Two(10)

[0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

引数は、普通の数字で、戻り値が、リストになりました。

呼び出し方の例です。


def Coffee(sugar=1,color='black'):
    print "--My Coffee--"
    print "Sugar:",sugar
    print "color:",color
Coffee(3)
Coffee(4,"brown")
Coffee(color="gray")

--My Coffee--
Sugar: 3
color: black
--My Coffee--
Sugar: 4
color: brown
--My Coffee--
Sugar: 1
color: gray

color="gray"で、特定の引数にだけ値をわたしています。

補足

このページの初めのほうの戻り値がないようなのは関数ではなく、プロシージャというそうです。

次はモジュールをやります。



管理人:人泣礼(hitonaki@starword.org)