#Sequence unpacking 拆封的概念 
#>>> a=[3,7,1,4,2]
#>>> x,y,*z=a
#>>> x,y,z
#(3, 7, [1, 4, 2])
#>>> a='PYTHON'
#>>> x,y,*z=a
#>>> x,y,z
#('P', 'Y', ['T', 'H', 'O', 'N'])
#個體資料與總體資料的差意
#把總體分解為個體
#container這是一個容器的概念
#將資料當成書
#將串列視為書包
#如果知道有三個資料，當然可以寫成x,y,z=a
#但是只知道至少兩筆資料
#所以x,y可以直接寫出來
#*z是一個umpacking的寫法
#意思是不知道後面有多少資料
#全部塞到z裡面去
#所以由第二個PYTHON的例子中
#我們可以發現z是一個串列
#x,y,*z=a
#這條的意思是第一個和第二個分別丟到x,y中
#其餘丟到z中





#進階寫法
def f(a,b,*c):
    print(a)
    print(b)
    print(c)
#>>> f(3,7,1,4,2)
#3
#7
#(1, 4, 2)
#會發現原來函數中部只能放一個數字
#可用於資料處理





#不限定資料個數函數
def mysum(*a):
    print(a)
    return sum(a)
#>>> mysum(1,5,6,3,8)
#(1, 5, 6, 3, 8)
#23
#>>> a=[x for x in range(1,11)]
#>>> mysum(*a)
#(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
#55