首先,通过一个问题引入本文要讲的内容,Python中如何交换两个变量的值?

不要跟我说你还在用引入中间变量的方法来交换两个变量的值,那还是我们简洁强大的Python么!

Python 如何让两个变量同值 python两个变量赋值_赋值

交换两个变量

Python中的序列赋值给多个变量

任何序列(或是可迭代对象)都可以通过简单的赋值语句(=)赋值给多个变量。

Tips:变量数必须和序列中元素数一致。

示例代码如下:

Python 如何让两个变量同值 python两个变量赋值_python变量赋值方式_02

如果变量数与序列中元素数不一致,则报错:

Python 如何让两个变量同值 python两个变量赋值_下划线_03

扩展:

实际上,这种给多变量赋值可以用在任何可迭代对象上,而不仅仅是列表或元组。包括字符串,文件对象,迭代器和生成器。

示例代码如下:

Python 如何让两个变量同值 python两个变量赋值_python变量赋值方式_04

如果想丢弃一些变量,用下划线(相当于没有变量名)接收变量。

示例代码如下:

Python 如何让两个变量同值 python两个变量赋值_Python_05

星号(*)表达

用星号(*)表达式可以解决上述序列中元素数与变量数不一致的报错。星号(*)表达式用来接收不确定个数或任意个数元素的可迭代对象。星号表达式创建的变量永远都是列表类型。

例如,常见的分数计算中去除第一个和最后一个取平均值。

Python 如何让两个变量同值 python两个变量赋值_下划线_06

星号(*)表达式在字符串操作的时候也会很有用,比如字符串分割:

Python 如何让两个变量同值 python两个变量赋值_赋值_07

上面讲过,丢弃一个变量用下划线。然而,丢弃一些变量,则可以用星号表达式和下划线结合起来:

Python 如何让两个变量同值 python两个变量赋值_Python_08

星号(*)表达式语法跟列表处理有很多相似之处。如下,切分列表为前后两部分:

Python 如何让两个变量同值 python两个变量赋值_Python 如何让两个变量同值_09

如果你够聪明的话,还能用这种分割语法巧妙地实现递归算法。如下:

Python 如何让两个变量同值 python两个变量赋值_下划线_10

最后,由于语言层面的限制,递归并不是Python所擅长的。因此,最后那个递归演示仅仅是个好奇的探索罢了,对此不要太认真。