Python 函数应用实例

img


有没有人知道为什么这里m能取到avg,明明元组只赋予了l,return 返回的是一个元组,m,l=fun()这里按到底应该只赋予了l吧

因为fun()函数返回的是两个参数,分别是avg和g,这两个值刚好可依次赋值给m和l两个变量。return 返回的确实是一个元组(avg,g),但里面就是两个元素,一个是数值avg,另一个是列表g。若返回的是三个元素,赋值给m和l就会出错。如果有怀疑,最好的办法就是自己动手写一下验证一番,通过报错就可以看出问题在哪。
测试代码如下,供参考:

>>> m, l = [3, 4]
>>> m
3
>>> l
4
>>> m, l = {5, 6}
>>> m
5
>>> l
6
>>> m, l = 7, 8
>>> m
7
>>> l
8
>>> m, l = [9, 10 ,11]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
>>> m, l = (9, [10 ,11])
>>> m
9
>>> l
[10, 11]
>>> m, l = (12,[13,14,15],18)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
>>>