開発環境
- 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 コメント:
コメントを投稿