Day18:变量赋值

1. 什么是变量赋值?

变量赋值是将某个值存储到一个变量中的过程。在Python中,变量赋值是实现程序逻辑的重要组成部分。通过赋值操作,程序可以动态地保存、修改和操作数据。

赋值通常使用 = 符号完成,格式如下:

python 复制代码
变量名 = 值

例如:

python 复制代码
x = 10  # 将整数10赋值给变量x
name = "Alice"  # 将字符串"Alice"赋值给变量name

2. Python中的赋值特点

  1. 动态类型语言

    Python是一种动态类型语言,变量在赋值时无需指定类型,解释器会根据值自动推断类型。

    示例:

    python 复制代码
    x = 42          # x是整数类型
    x = "Hello"     # x被重新赋值为字符串类型
    print(type(x))  # 输出:<class 'str'>
  2. 变量名即标签

    在Python中,变量名是对象的引用。赋值时,变量名"指向"内存中的对象,而不是直接存储值。多个变量可以指向同一个对象。

    示例:

    python 复制代码
    a = [1, 2, 3]
    b = a  # b和a指向同一个列表对象
    b.append(4)
    print(a)  # 输出:[1, 2, 3, 4]
  3. 多变量同时赋值

    Python支持多变量同时赋值,可以提高代码的简洁性。

    示例:

    python 复制代码
    x, y, z = 1, 2, 3  # 同时为x, y, z赋值
    a = b = c = 0      # 为多个变量赋相同的值
  4. 解构赋值

    Python支持从容器中解构赋值,将多个值赋给不同的变量。

    示例:

    python 复制代码
    data = (10, 20, 30)
    x, y, z = data  # 解构元组
    print(x, y, z)  # 输出:10 20 30

3. 变量赋值的类型

  1. 简单赋值

    使用 = 将值赋给变量。

    示例:

    python 复制代码
    num = 10  # 将10赋值给变量num
    text = "Hello"  # 将字符串赋值给变量text
  2. 链式赋值

    将同一个值赋给多个变量。

    示例:

    python 复制代码
    a = b = c = 5
    print(a, b, c)  # 输出:5 5 5
  3. 多变量赋值

    在一条语句中为多个变量赋值,值的数量必须与变量数量匹配。

    示例:

    python 复制代码
    x, y = 1, 2
    print(x, y)  # 输出:1 2
  4. 变量交换

    通过多变量赋值可以实现变量的交换,无需借助中间变量。

    示例:

    python 复制代码
    a, b = 5, 10
    a, b = b, a  # 交换a和b的值
    print(a, b)  # 输出:10 5

4. 深入理解变量赋值

  1. 赋值和对象引用

    在赋值操作中,变量名实际上是一个"标签",指向内存中的对象。如果变量被重新赋值,标签会指向新的对象。

    示例:

    python 复制代码
    a = [1, 2, 3]
    b = a
    b.append(4)
    print(a)  # 输出:[1, 2, 3, 4](a和b指向同一个列表)
  2. 浅拷贝与深拷贝

    如果需要将一个对象的副本赋值给另一个变量,而不是共享同一个对象,可以使用拷贝操作:

    • 浅拷贝: 拷贝对象的引用,修改可变对象的内容会影响副本。
    • 深拷贝: 创建一个全新的对象,完全独立于原对象。

    示例:

    python 复制代码
    import copy
    
    original = [1, [2, 3], 4]
    shallow = copy.copy(original)  # 浅拷贝
    deep = copy.deepcopy(original)  # 深拷贝
    
    shallow[1].append(5)
    print(original)  # 输出:[1, [2, 3, 5], 4](浅拷贝影响原对象)
    
    deep[1].append(6)
    print(original)  # 输出:[1, [2, 3, 5], 4](深拷贝不影响原对象)
  3. 可变与不可变对象赋值

    • 可变对象(如列表、字典):修改内容会影响其他指向同一对象的变量。
    • 不可变对象(如整数、字符串):重新赋值会创建新对象,变量标签指向新对象。

    示例:

    python 复制代码
    x = 10
    y = x
    x = 20
    print(y)  # 输出:10(不可变对象的赋值创建新对象)
    
    a = [1, 2, 3]
    b = a
    a.append(4)
    print(b)  # 输出:[1, 2, 3, 4](可变对象共享同一引用)

5. 课后练习

  1. 基本赋值

    定义一个变量 name,并将你的名字赋值给它。然后打印该变量的值。

  2. 多变量赋值

    编写一个程序,将一个元组 (5, 10, 15) 解构赋值给变量 x, y, z,并打印这些变量的值。

  3. 链式赋值

    使用链式赋值为三个变量 a, b, c 赋值为同一个整数 100,并打印它们的值。

  4. 变量交换

    编写一个程序,交换两个变量 a, b 的值,并打印交换后的结果。

  5. 拷贝练习

    编写一个程序,创建一个嵌套列表,分别使用浅拷贝和深拷贝操作。对拷贝后的列表进行修改,观察原列表是否受到影响。


6. 本章小结

本章详细介绍了Python中的变量赋值操作,包括基本赋值、多变量赋值、链式赋值和变量交换。同时,我们深入探讨了赋值背后的对象引用机制,以及浅拷贝与深拷贝的区别和应用场景。

相关推荐
Juchecar34 分钟前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780511 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_1 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机8 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机9 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机9 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机9 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i9 小时前
drf初步梳理
python·django
每日AI新事件9 小时前
python的异步函数
python
这里有鱼汤10 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python