2014年8月31日日曜日

開発環境

Learning Python (Mark Lutz (著)、Oreilly & Associates Inc)のPART Ⅱ.(Types and Operations)、Test Your Knowledge: Part II Exercises 7.(Generic operations)を解いてみる。

その他参考書籍

7.(Generic operations)

コード(BBEdit)

sample7.py

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

print('a.')
# TypeError
try:
    a = 'k' + [1]
except Exception as err:
    print(type(err), err)

try:
    a = [1] + (1,)
except Exception as err:
    print(type(err), err)

print('b.')
# doesn't work
# TypeError
try:
    d = {'a':1} + {'b':2}
except Exception as err:
    print(type(err), err)

print('c.')
# does't work
# work for lists
l = ['a']
print(l)
l.append(1)
print(l)

# does't work for strings
# AttributeError
try:
    s = 'a'
    s.append('b')
except Exception as err:
    print(type(err), err)

print('d.')
# two lists, get list
# two strings, get strings

l1 = ['a']
l2 = ['b']
l3 = l1 + l2
l4 = l3[:]
print(l3, type(l3))
print(l4, type(l4))

s1 = 'a'
s2 = 'b'
s3 = s1 + s2
s4 = s3[:]
print(s3, type(s3))
print(s4, type(s4))

入出力結果(Terminal, IPython)

$ ./sample7.py
a.
<class 'TypeError'> Can't convert 'list' object to str implicitly
<class 'TypeError'> can only concatenate list (not "tuple") to list
b.
<class 'TypeError'> unsupported operand type(s) for +: 'dict' and 'dict'
c.
['a']
['a', 1]
<class 'AttributeError'> 'str' object has no attribute 'append'
d.
['a', 'b'] <class 'list'>
['a', 'b'] <class 'list'>
ab <class 'str'>
ab <class 'str'>
$

0 コメント:

コメントを投稿