2014年3月4日 星期二

006 Python Cookbook 01-01 Unpacking a Sequence

#!/usr/bin/env python


# http://chimera.labs.oreilly.com/books/1230000000393/ch01.html#iterableunpack

# Unpacking a Sequence into Separate Variables






import sys

p = (4, 5)
print "p is ", p
x, y = p
print "after x, y = p"
print "x is ", x
print "y is ", y

print "-----------"

data = ['ACM', 50, 91.1, (2014, 2, 19)]
print "data = ", data
name, shares, price, date = data
print "after name, shares, price, date = data"
print "name = ", name
print "shares = ", shares
print "price = ", price
print "date = ", date

print "-----------"

name, shares, price, (year, month, day) = data
print "after name, shares, price, (year, month, day) = data"
print "year = ", year
print "month = ", month
print "day = ", day

print "-----------"

p = (4, 5)
print "p =", p
print "if x, y, z = p"
try:
    x, y, z = p
except ValueError:
    print "except ValueError"
    i = 0
    for msg in sys.exc_info():
        print "sys.exc_info()[", i, "]" ,msg;
        i+=1

print "-----------"

s = "hello"
print "s = ", s
a1, a2, a3, a4, a5 = s
print "after a1, a2, a3, a4, a5 = s"
print "a1 = ", a1
print "a2 = ", a2
print "a3 = ", a3
print "a4 = ", a4
print "a5 = ", a5

print "-----------"

data = ['dont care', 50, 91.1, ('let', 'it', 'go')]
print "data = ", data
_, shares, price, _ = data
# treat "-" as throw away variable
print "after _, shares, price, _ = data"
print "shares = ", shares
print "price = ", price
p is  (4, 5)
after x, y = p
x is  4
y is  5
-----------
data =  ['ACM', 50, 91.1, (2014, 2, 19)]
after name, shares, price, date = data
name =  ACM
shares =  50
price =  91.1
date =  (2014, 2, 19)
-----------
after name, shares, price, (year, month, day) = data
year =  2014
month =  2
day =  19
-----------
p = (4, 5)
if x, y, z = p
except ValueError
sys.exc_info()[ 0 ] <type 'exceptions.ValueError'>
sys.exc_info()[ 1 ] need more than 2 values to unpack
sys.exc_info()[ 2 ] <traceback object at 0x000000000256ED88>
-----------
s =  hello
after a1, a2, a3, a4, a5 = s
a1 =  h
a2 =  e
a3 =  l
a4 =  l
a5 =  o
-----------
data =  ['dont care', 50, 91.1, ('let', 'it', 'go')]
after _, shares, price, _ = data
shares =  50
price =  91.1

沒有留言:

張貼留言