2012年4月6日金曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)まとめ演習3(引数の数を増やす(減らす))を解いてみる。

3.

可変長引数にするには、*argsを使えばいい。

コード(TextWrangler)

#!/usr/bin/env python
#encoding: utf-8

def adder(*args):
 total = args[0]
 for x in args[1:]:
  total += x
 return total


print adder('python','javascript')
print adder('python')
print adder('python','javascript','ruby')
print adder([1,2],[3,4,5])
print adder([1,2])
print adder([1,2],[3,4,5],[6,7])
print adder(12.34,56.789)
print adder(12.34)
print adder(12.34,56.789,54.32)
print adder({'a':1,'b':2},{'c':3,'d':4,'e':5})
print adder({'a':1,'b':2})
print adder({'a':1,'b':2},{'c':3,'d':4,'e':5},{'f':6,'g':7})

入出力結果(Terminal)

$ python python_program.py
pythonjavascript
python
pythonjavascriptruby
[1, 2, 3, 4, 5]
[1, 2]
[1, 2, 3, 4, 5, 6, 7]
69.129
12.34
123.449
Traceback (most recent call last):
  File "python_program.py", line 20, in <module>
    print adder({'a':1,'b':2},{'c':3,'d':4,'e':5})
  File "python_program.py", line 7, in adder
    total += x
TypeError: unsupported operand type(s) for +=: 'dict' and 'dict'
$

異なる方の引数を混在させた場合エラーになる。

また、入出力結果から分かるように、ディクショナリを引数に指定した場合もエラーになる。

0 コメント:

コメントを投稿