• Python基础09 赋值魔法


    Python的赋值语句有一些使用窍门。

    一、序列解包

    序列解包:将一个序列解包,并将得到的值存储到一系列变量中。

    >>> x, y, z = 1, 2, 3
    >>> print(x, y, z)
    1 2 3
    >>> values = 1, 2, 3
    >>> values
    (1, 2, 3)
    >>> x, y, z = values
    >>> print(x, y, z)
    1 2 3

    使用这种方式还可交换多个变量的值。

    >>> x, y = y, x
    >>> print(x, y, z)
    2 1 3

    要解包的序列包含的元素个数必须与目标个数相同,否则将引发异常。

    >>> x, y, z = 1, 2
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: not enough values to unpack (expected 3, got 2)
    >>> x, y, z = 1, 2, 3, 4
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: too many values to unpack (expected 3)

    可使用星号运算符(*)来收集多余的值,这样无须确保值和变量的个数相同。

    >>> x, y, *z = 1, 2, 3, 4
    >>> z
    [3, 4]

    还可将带星号的变量放在其他位置。

    >>> x, *y, z = 1, 2, 3, 4
    >>> y
    [2, 3]

    二、链式赋值

    链式赋值用于将多个变量关联到同一个值。

      x = y = somefunction()

    上述代码与下面的代码等价:

      y = somefunction()

      x = y

    三、增强赋值

    x = x + 1 可以写成 x += 1,这称为增强赋值。

    增强赋值适用于所有标准运算符,如*、/、%等。

    >>> x = 2
    >>> x += 1 >>> x *= 2 >>> x /= 2 >>> x %= 2

    增强赋值也可用于其他数据类型。

    >>> x = 'py'
    >>> x += 'thon'
    >>> x *= 2
  • 相关阅读:
    Selenium开发环境搭建
    如何抓取移动端崩溃日志?
    html+ashx + NPOI 实现导出Excel文件并且预览和下载
    oss 文件上传:Web端上传介绍
    事务控制和锁定语句
    索引的设计和使用
    最近几年读过的书籍
    053.NET5_EFCoreMigration
    052.NET5_EFCoreDbFirst
    051.NET5_中间件的多种引用方式
  • 原文地址:https://www.cnblogs.com/mazhiyong/p/12458183.html
Copyright © 2020-2023  润新知