- トップページ
- 特集PC技術
- Pythonを学ぼう
- 第24回 関数の基本
Pythonを学ぼう
第24回 関数の基本
1.関数とは
これまでの回で、すでに関数を使用してきました。
例えば、リストを作成するためのlist関数。リストの長さを調べるためのlen関数など。
このように、とある機能をひとまとめにしたものを関数といいます。
この回では、基本的な関数の作成を行います。
2.関数の定義
関数の定義は次の構文を使用します。
def 関数名(引数・・・)
関数の処理を記述
return 戻り値
関数を定義する場合は、def文を使用します。
関数名には、任意の関数名を記述します。
引数は、何らかのオブジェクトを渡す時に使用します。
戻り値は、何らかのオブジェクトを返す時に使用します。
まずは、簡単な関数の例として、引数と戻り値を省略します。
使用方法は、次のプログラムを見てください。
# coding: utf-8 # 引数・戻り値なしの関数の定義 def function(): print('print function') # 関数の呼び出し function() |
実行結果
print function
関数functionを定義して、その後、呼び出しを行っています。
関数を呼び出すと、関数で定義した処理が実行され、"print function"を出力します。
3.関数の引数
関数の引数を記述する方法は次の4つの方法があります。
3.1.基本的な引数
引数に値を渡す基本的な方法です。
次のプログラムを見てください。
# coding: utf-8 # 引数2つ、戻り値なしの関数の定義 def function(arg1, arg2): print('print ' + arg1 + ' ' + arg2) # 引数2つを入れて、関数の呼び出し function('a', 'b') |
実行結果
print a b
引数が2以上の場合は、カンマ(,)で引数を区切って定義します。
上記の例では、'a'と'b'という文字列を渡して、関数でarg1とarg2という変数で受け取るようにしています。
3.2.デフォルト値を指定
関数の呼び出しで、引数が指定されていない場合、デフォルト値を使用するように指定できます。
次のプログラムを見てください。
# coding: utf-8 # 引数1つ、戻り値なしの関数の定義 def function(arg='default'): print('print ' + arg) # 引数なしで、関数の呼び出し function() # 引数ありで、関数の呼び出し function('a') |
実行結果
print default
print a
3.3.シーケンス型の可変長引数
引数を任意の数にしたい場合は、シーケンス型の指定方法があります。
引数宣言の前に"*"を付けるだけです。
すると、複数の引数をタプル型で受け入れます。
次のプログラムを見てください。
# coding: utf-8 # 引数は任意の数、戻り値なしの関数の定義 def function(*args): print(args) # 引数なしで、関数の呼び出し function() # 引数を任意の数にして、関数の呼び出し function('a', 'b', 'c') # 引数をシーケンス型のオブジェクトにして、関数の呼び出し function(*['a', 'b']) |
実行結果
()
('a', 'b', 'c')
('a', 'b')
引数は任意の数をタプル型で受け入れていることがわかります。
引数を指定しないと、空のタプルになります。
シーケンス型のオブジェクトを引数として渡したい場合は、関数の呼び出し時に、"*"をオブジェクトの前につけます。
3.4.辞書型の可変長引数
引数の前に"**"を付けると、キーワード付き引数を辞書型として受け入れます。
次のプログラムを見てください。
# coding: utf-8 # 引数は任意の数、戻り値なしの関数の定義 def function(**args): print(args) # 引数なしで、関数の呼び出し function() # 引数を任意の数にして、関数の呼び出し function(keyword1='a', keyword2='b', keyword3='c') # 引数をシーケンス型のオブジェクトにして、関数の呼び出し function(**{'keyword1':'a', 'keyword2':'b'}) |
実行結果
{}
{'keyword3': 'c', 'keyword2': 'b', 'keyword1': 'a'}
{'keyword2': 'b', 'keyword1': 'a'}
引数を指定しないと、空の辞書になります。
辞書型のオブジェクトを引数として渡したい場合は、関数の呼び出し時に、"**"をオブジェクトの前につけます。
3.5.引数の順番に注意
これまでに紹介した引数は、同時に指定することが可能です。
ただし、紹介した順番に指定しないと、エラーとなりますので注意してください。
正しい順序:基本的な引数、デフォルト値のある引数、シーケンス型の可変長引数、辞書型の可変長引数
4.関数の戻り値
関数の処理結果を返すのが、関数の戻り値です。
関数の戻り値を指定するには、return文を使用します。
使用方法は、次のプログラムを見てください。
# coding: utf-8 # 引数2つ、戻り値ありの関数の定義 def function(arg1, arg2): return arg1 + arg2 |
実行結果
3
関数内で引数1と2の演算結果3を返します。
なので、出力結果は、3になります。
ちなみに、return文のない関数の戻り値を出力しようとした場合は、"None"が出力されます。
5.Javaとの比較
Javaのソースコードとの比較をします。
Javaを知っている方は参考にしてください。
Python | Java |
---|---|
# coding: utf-8 # 引数を足し合わせた値を返す関数の定義 def function(arg1, arg2): return arg1 + arg2 # 関数の呼び出して、戻り値を出力 print(function(1, 2)) |
public class Java24 { // 引数を足し合わせた値を返す関数の定義 public static int function(int arg1, int arg2) { return arg1 + arg2; } // 関数の呼び出して、戻り値を出力 public static void main(String[] args) { System.out.println(function(1, 2)); } } |
コメントの投稿
トラックバックURL
http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1786