home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Python/codepiece/関数(1)

Python/codepiece/関数(1)

Python / codepiece / 関数(1)
id: 206 所有者: msakamoto-sf    作成日: 2009-03-09 07:52:29
カテゴリ: Python 

関数定義の文例集

引数無し or 単純な引数

def f1():
  print "Hello f1!"
def f2(name):
  print "Hello " + name + "!"

f1()
f2("Huga")


Hello f1!
Hello Huga!

デフォルト引数

def f3(a1, a2 = 'default'):
  print "a1 = " + str(a1)
  print "a2 = " + str(a2)

f3(123)
f3(456, 789)


a1 = 123
a2 = default
a1 = 456
a2 = 789

デフォルト引数とキーワード引数

def f4(who, greet = "Hello", times = 5):
  print greet * times, 
  print ", " + who

f4("Taro", "Bonjour", 3)
f4("Hanako", greet = "Good Night", times=2)
f4("Fuga", times=3)
f4("Bohe", greet = "Good-Bye")


BonjourBonjourBonjour , Taro
Good NightGood Night , Hanako
HelloHelloHello , Fuga
Good-ByeGood-ByeGood-ByeGood-ByeGood-Bye , Bohe

可変引数

def f5( a1, *args):
  print repr(a1)
  print repr(args)
  for i in args:
    print i

f5(1, 2, 3)
f5(*(4, 5, 6))


1
(2, 3)
2
3
4
(5, 6)
5
6

内部的にはタプルとして渡ってくる。

可変キーワード引数

def f6(a1, a2, **opts):
  print "a1 = " + str(a1)
  print "a2 = " + str(a2)
  for (k, v) in opts.items():
    print str(k) + " = " + str(v)

f6('foo', 'bar', buz = 'hoge', aaa = 123)


a1 = foo
a2 = bar
buz = hoge
aaa = 123

再帰によるfor文を使わないループ処理

Erlangを勉強した事があったので、こういう小手先技も思いつきました。

def f7(*l):
  head = l[0]
  r = l[1:]
  print head
  if len(r) != 0:
    f7(*r)

f7(1, 2, 3, 4, 5)


1
2
3
4
5


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-03-09 08:05:16
md5:4d3b86cd0b00128f46973ce46dbf8360
sha1:4d4460e90682590bd3cab693442a8d29a98797f3
コメント
コメントを投稿するにはログインして下さい。