跟老齐学Python之正规地说一句话

2019-10-05 17:24:03王冬梅

>>> c
'w'
>>> (a,b,c) = "qiw"
>>> a,c
('q', 'w')
>>> a,b,c = 'qiw'       #与前面等价
>>> a,b
('q', 'i')
>>> a,b = 'qiw'         #报错了,因为左边和右边不是一一对应
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack

>>> (a,b),c = "qi","wei"    #注意观察,这样的像是是如何对应的
>>> a,b,c
('q', 'i', 'wei')
>>> string = "qiwsir"
>>> a,b,c = string[0],string[1],string[2]   #取切片也一样
>>> a,b,c
('q', 'i', 'w')
>>> (a,b),c = string[:2],string[2:]
>>> a,b,c
('q', 'i', 'wsir')

从实验中,可以看出,要搞清楚这种眼花缭乱的赋值,就仅仅扣住“一一对应”这个命脉即可。

如果看官用python3,在赋值上还有更多有意思的东西呢。不过,本讲座用的还是python2。