開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)のまとめ演習3(引数の数を増やす(減らす))を解いてみる。
その他参考書籍
3.
コード(TextWrangler)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- def adder(*args): result = args[0] for x in args[1:]: result += x return result print(adder("python","javascript","perl")) print(adder("python")) print(adder("python","javascript")) print(adder([1,2],['a','b','c','d'],[3,4,5])) print(adder([1,2])) print(adder([1,2],['a','b','c','d'])) print(adder(1.2, 3.45, 6.7)) print(adder(1.2)) print(adder(1.2, 3.45)) # 異なる型の引数を混在させた場合 try: print(adder("python", [1, 2])) except Exception as err: print("exceptブロック") print(err) try: print(adder([1, 2], 1.2)) except Exception as err: print("exceptブロック") print(err) try: print(adder(1.2,"python")) except Exception as err: print("exceptブロック") print(err) # ディクショナリを引数に指定した場合 try: print(adder({'a':1,'b':2}, {'c':3,'d':4})) except Exception as err: print("exceptブロック") print(err)
入出力結果(Terminal)
$ ./sample.py pythonjavascriptperl python pythonjavascript [1, 2, 'a', 'b', 'c', 'd', 3, 4, 5] [1, 2] [1, 2, 'a', 'b', 'c', 'd'] 11.350000000000001 1.2 4.65 exceptブロック Can't convert 'list' object to str implicitly exceptブロック 'float' object is not iterable exceptブロック unsupported operand type(s) for +=: 'float' and 'str' exceptブロック unsupported operand type(s) for +=: 'dict' and 'dict' $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var result = ""; function adder(){ var result = arguments[0]; for(var i = 1; i < arguments.length; i++){ result += arguments[i]; } return result; } result += adder('javasciprt', 'python', 'perl') + "\n" + adder('javascript') + "\n" + adder('javascript', 'python') + "\n" + adder([1,2], ['a','b','c','d'], [3,4,5]) + "\n" + adder([1,2]) + "\n" + adder([1,2],['a','b','c','d']) + "\n" + adder(1.2, 3.45, 6.7) + "\n" + adder(1.2) + "\n" + adder(1.2, 3.45) + "\n" + // 異なる型を混在させて引数に渡した場合 adder('javascript', 1.2) + "\n" + adder([1.2], 1.2) + "\n" + adder(1.2, 'javascript') + "\n"; $('#pre0').text(result);
0 コメント:
コメントを投稿