PC | mobile ver.20170108.

 libro ~入門ドキュメント・サイト~

GAE開発を目指す人のためのPython超入門:

関数からクラスへ (1/6)

作成:2011-01-24 08:23
更新:2011-01-24 08:23
■関数を作る!
スクリプトというのは、同じような処理を何度も行うことが多いものです。その度に、いちいち同じようなスクリプトを何度も書くのはとても面倒です。こうした「決まりきった処理」を、いつでもどこからでも呼び出せるようにするのが「関数」です。

例えば、下に上げたサンプル(1)のような例を考えてみましょう。変数に名前を入れて、「Hello, ◯◯.How are you?」と出力するスクリプトです。これ、同じようなテキストを出力するのに同じようなprint文を何度も書かないといけません。なんだか、とてもバカバカしいですね?

こうしたときに「関数」が役立ちます。サンプル(2)は、関数を使って書きなおしたものです。最初に、決まった形で出力する関数を用意しておけば、あとは「showMsg("Taro")」というようにしていつでも呼び出せます。呼び出すだけで、指定した形でのメッセージが表示されるのです。

ここでは短いメッセージを表示するだけですが、もっともっと複雑な処理になると「1回、スクリプトを書いておけば、それがいつでも呼び出して実行できる」というのはとても便利なことがわかるでしょう。

この関数は、以下のような形で定義をします。
def 関数名 ( 引数1, 引数2, …… ):
    ……実行する処理……
関数定義の基本は、「def 関数名」というものです。サンプル(2)では「def showMsg 〜」となっていますから、showMsgという名前の関数を作っていたわけですね。

そして、その後に、():とつけ、それから改行してインデントをして、実行したい処理を書いていきます。

():の中には、「引数」というのを用意できます。これは、関数を呼び出すときに何かの値を受け渡すのに使います。例えばサンプル(2)では、「def showMsg(str):」となっていました。ということは、「str」という引数が用意されていることになりますね。

これは、「この関数を呼び出すときに、何かの値を一緒に送ってきて、これをstrという名前の変数に入れて渡しますよ」ということなのです。サンプルで呼び出している部分を見てみましょう。
showMsg("Taro")
ほら、こんな具合に、関数名の後に()を付けて、"Taro"という値が書いてあるでしょう? ということは、この"Taro"が、showMsg関数の「str」という変数に渡される、ということなのです。実行している処理を見ると、
    print "Hello," + str + ".How are you?"
こうなっていますね? 受け渡された変数strを使って、メッセージをprintしているのです。

引数は、1つだけでなくていくつでも用意できます。この場合は、それぞれの変数をカンマで区切って記述します。「def showMsg(a,b):」みたいな感じですね。また引数がない場合も、()はつけないといけません。

関数を使うのに覚えておかないといけないことは、たったこれだけ。意外と簡単でしょう?



 

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※サンプル(1)

# -*- coding: utf-8 -*-

a = "Taro"
b = "Hanako"
c = "Ichiro"

print "Hello," + a + ".How are you?"
print "Hello," + b + ".How are you?"
print "Hello," + c + ".How are you?"


※サンプル(2)

# -*- coding: utf-8 -*-

def showMsg(str):
    print "Hello," + str + ".How are you?"

showMsg("Taro")
showMsg("Hanako")
showMsg("Ichiro")



 


「GAE開発を目指す人のためのPython超入門」に戻る



※その他のコンテンツ