python系列教程134——各种形式的赋值语句

183 阅读2分钟

本篇文章我们来学习一下赋值语句的各种形式。

 

spam = ‘Spam’

这是最最常见的一种赋值语句了,无需解释太多。

 

spam, ham = ‘yum’, ‘YUM’

[spam,ham] = [‘yum’,’YUM’]

当在“=”左边编写元组或列表时,Python会按照位置把右边的对象和左边的目标从左至右相配对。例如,字符串'yum'赋值给变量名spam,而变量名ham则绑定至字符串'YUM'。

 

a,b,c,d = ‘spam’

上面的赋值语句会把变量名的元组和字符串中的字符对应起来:a赋值为's',b赋值为'p'等

 

a,*b = ‘spam’

上面的语句用右边的字符串的第一个字母来匹配a,用剩下的部分来匹配b:a赋值为's',b赋值为'pam'。

 

spam = ham = ‘lunch’

变量名spam和ham两者都赋值成对相同的字符串对象'lunch'的引用。效果就好像我们写成ham='lunch',而后面再写spam = ham。

 

spams += 42

相当于“spam = spam + 42”。这种简洁形式称为增强赋值。它的输入较少,而且通常执行得更快。此外,如果操作主体是可变的并且支持这一操作,增强赋值通过选择原处更新操作而不是对象副本,从而可以更快地运行。在Python中,每个二元表达式运算符都有增强赋值语句。

 

绝大多数情况下,赋值语句都很简单,但有些特性要专门记住的,如下所示。

 

•Python赋值语句会把对象引用值存储在变量名或数据结构的元素内。赋值语句总是使用对象的引用值,而不是复制对象。因此,Python变量更像是指针,而不是数据存储区域。

 

•变量名在首次赋值时会被创建。Python会在首次将值(即对象引用值)赋值给变量时创建其变量名。一旦赋值了,每当这个变量名出现在表达式时,就会被其所引用的值取代。

 

•变量名在引用前必须先赋值。使用尚未进行赋值的变量名是一种错误。如果你试图这么做,Python会引发异常,而不是返回某种模糊的默认值;如果返回默认值,就很难在程序中找出输入错误的地方。