xiaobaitu

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

赋值的特性

赋值语句建立对象引用

变量名在首次赋值时会被创建

变量名在引用前必须先赋值

赋值语句的形式

  • 序列赋值
    >>> A, B = 1, 2
    >>> print (A, B)
    1 2
    View Code

     在上面的例子中,写了两个元组,只是省略了它们的括号。python把赋值运算符右侧元组内的值和左侧元组内的变量相互匹配,然后每一次赋一个值

  • 高级序列赋值
    >>> a, b, c, d = 'spam'
    >>> print(a, b, c, d)
    s p a m
    >>> a, b, c = 'spam'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: too many values to unpack (expected 3)
    >>> 
    View Code

    通过上面的例子,右边元素的数目还要是要跟左边的变量数目相同,不然会产生错误

  • 扩展解包赋值
    >>> a, b = 'spam'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: too many values to unpack (expected 2)
    >>> a, *b = 'spam'
    >>> print(a,b)
    s ['p', 'a', 'm']
    >>> *a, b = 'spam'
    >>> print(a,b)
    ['s', 'p', 'a'] m
    >>> a, *b, c = 'spam'
    >>> print(a,b,c)
    s ['p', 'a'] m
    View Code

     一个带星号的变量名 ,收集了序列中没有赋值给其他名称的所有项

  • 增强赋值语句
  
>>> x = 1
>>> x +=1
>>> print(x)
2
View Code

   增强赋值语句有三个优点:减少输入;左侧只需要计算一次,在完整形式的x = x+1中,x出现两次,必须执行两次;优化技术会自动选择。

 

posted on 2017-01-03 22:06  xiaobaitu  阅读(2264)  评论(0)    收藏  举报