ユーザー定義関数
ユーザー定義関数
関数は、呼び出し元より上に記述する
- 基本構文
- 初期値のある引数
- 初期値のある関数にキーワード引数で値を渡す
- 引数の数を固定しない : *args
- キーワード引数を辞書で受取る : **kwargs
- 他のPythonファイルを読み込む (stdin利用)
基本構文
def sum(a, b) : x = a + b return x print(sum(2, 3)) # 5
初期値のある引数
def sum(a, b = 10) : # 初期値は後方から必須 x = a + b return x print(sum(2)) # 位置引数で渡す # 12 print(sum(2, 100)) # 102
初期値のある関数にキーワード引数で値を渡す
def sum(first = 10, second = 5) : # 初期値は後方から必須 x = first + second return x print(sum()) # 引数の省略 # 15 print(sum(second = 1)) # 第二引数のみキーワードで渡す # 11 print(sum(first=2)) # 7
引数の数を固定しない : *args
- *argsと書くのは慣例
def letters(*args) : # タプルで受け取る print(args) letters("apple", "cherry", "pine", "banana") # ('apple', 'cherry', 'pine', 'banana')
- 必須の固定引数と数を固定しない引数
def letters2(start, end, *args) : # タプルで受け取る print(f"{start},---") for t in args: print(f"args:{t}") print(f"---{end}") letters2("初めて", "終わり", "cherry", "pine", "banana") # 初めて,--- # args:cherry # args:pine # args:banana # ---終わり
キーワード引数を辞書で受取る : **kwargs
def fruit(**kwarfs): print(kwarfs) fruit(apple = 2, orange = 3, banana = 1) # キーワードでの辞書 # {'apple': 2, 'orange': 3, 'banana': 1}
他のPythonファイルを読み込む (stdin利用)
- 自前のファイル(値の平均を返す)
def average_calc(*args): # tupleで可変長を受ける if args: # argsが空でない l = [int(n) for n in args[0]] # stdinは文字列の為、変換 av = sum(l) / len(l) return av else: pass # TODO passは慣例 return None
- 自前のファイルをimportする
- コマンドラインから引数を受け取る
import average # 自前のファイル import sys a = average.average_calc(sys.argv[1:]) # コマンドラインから引数を受ける(リスト:スライス) print(a)
$ python test_def2.py 10 20 # スペースで引数を渡す # 15 # 結果