Differences between revisions 4 and 5
Revision 4 as of 2018-10-01 01:23:03
Size: 2735
Comment:
Revision 5 as of 2018-10-01 01:27:45
Size: 2854
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
<<Anchor(return)>>
Line 10: Line 11:
<<Anchor(definition_and_invocation)>><<Action(edit)>>
Line 36: Line 38:
<<Anchor(multiple_value)>><<Action(edit)>>

返戻値(return文)

返戻値を伴う関数定義

edit

  • 返戻値を伴う関数定義
    • def 文を用いて関数(function)を定義することができる 
    • その際に,return文で,返戻値を返すことができる.
      • 関数呼び出しは,「関数が呼び出されている部分を,その関数の計算結果で置き換える」と考えるとよい
  • 例(1): x という引数を受け取り,それを二倍して表示する関数 double() を定義する

   1 def double( x ):
   2     return( x * 2 )
   3 
   4 print( double( 12 ) )
  • 例: x と y という二つの引数を受け取り,その合計値を表示する関数 add() を定義する

   1 def add( x, y):
   2     return( x + y )
   3 
   4 print( add( 12, 23 ) )

複数の値を返す関数

edit

  • 複数の値を返す関数
    • 関数の返戻値として,タプルを返すことで,複数の値を返すことができる
      • タプルなので,型が異なっていてもよい

   1 import datetime
   2 
   3 def today_now():
   4     now = datetime.datetime.today()
   5     return( ((now.year, now.month, now.day), (now.hour,now.minute,now.second)) )
   6 
   7 (date, time) = today_now()
   8 print( date )
   9 print( time )

下記の様に、キーワード付き引数を指定することができます。キーワード付き引数は関数定義側で、デフォルトの値を指定することができます。

   1 def repeat_msg( msg, repeat=3 ):
   2     for i in range( repeat ):
   3         print( msg )
   4 
   5 repeat_msg('Hello')                    # Hello, Hello, Hello
   6 repeat_msg('Yahho', repeat=5)          # Yahho, Yahho, Yahho, Yahho, Yahho

*name は残りの順序引数を、**name はキーワード付き引数を辞書型で受け取ります。

   1 def func( a1, a2, *args, **params ):
   2     print( a1 )                    #=> A
   3     print( a2 )                    #=> B
   4     print( args )                  #=> ('C', 'D')
   5     print( params )                #=> {'k1': 'K1', 'k2': 'K2'}
   6 
   7 
   8 func('A', 'B', 'C', 'D', k1='K1', k2='K2')

args や params を変数で渡す場合には、呼び出す側にも * や ** をつけます。

   1 args = ('C', 'D')
   2 params = {'k1': 'K1', 'k2': 'K2'}
   3 func('A', 'B', *args, **params)     #=> A, B, ('C', 'D'), {'k1': 'K1', 'k2': 'K2'}

SoftEng: Python/Lang/Function/Return/Contents (last edited 2018-10-01 01:32:34 by TadashiIijima)