首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第7章 编程术语
7.1 编程术语定义
7.1.1 作为语言的Python和作为解释器的Python
7.1.2 垃圾回收
7.1.3 字面量
7.1.4 关键字
7.1.5 对象、值、实例和身份
7.1.6 项
7.1.7 可变和不可变
7.1.8 索引、键和哈希值
7.1.9 容器、序列、映射和集合类型
7.1.10 特殊方法
7.1.11 模块和包
7.1.12 可调用对象和头等对象
7.2 经常被混淆的术语
7.2.1 语句和表达式
7.2.2 块、子句和主体
7.2.3 变量和特性
7.2.4 函数和方法
7.2.5 可迭代对象和迭代器
7.2.6 语法错误、运行时错误和语义错误
7.2.7 形参和实参
7.2.8 显式类型转换和隐式类型转换
7.2.9 属性和特性
7.2.10 字节码和机器码
7.2.11 脚本和程序,以及脚本语言和编程语言
7.2.12 库、框架、SDK、引擎、API
第8章 常见的Python陷阱
8.1 循环列表的同时不要增删其中的元素
8.2 复制可变值时务必使用copy.copy()和copy.deepcopy()
8.3 不要用可变值作为默认参数
8.4 不要通过字符串连接创建字符串
8.5 不要指望sort()按照字母顺序排序
8.6 不要假设浮点数是完全准确的
8.7 不要使用链式!=运算符
8.8 不要忘记在仅有一项的元组中添加逗号
第9章 Python的奇特难懂之处
9.1 为什么256 是256,而257 不是257
9.2 字符串驻留
9.3 假的Python 增量运算符和减量运算符
9.4 传递空列表给all()
9.5 布尔值是整数值
9.6 链式使用多种运算符
9.7 Python 的反重力特性
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(三)
小册名称:Python编程轻松进阶(三)
### 7.2.3 变量和特性 在Python编程的进阶旅程中,深入理解变量及其特性是至关重要的。变量作为编程语言中的基石,不仅是数据存储的容器,还承载着数据类型、作用域、生命周期以及可变性等复杂而丰富的特性。本章节将深入探讨Python中变量的这些核心特性,帮助读者在编程实践中更加灵活、高效地运用变量。 #### 7.2.3.1 变量的基本概念 首先,我们来回顾一下变量的基本概念。在Python中,变量是用来存储数据值的标识符(或名称)。这些值可以是数字、文本(字符串)、列表、元组、字典等Python支持的各种数据类型。变量的命名需要遵循一定的规则,如以字母或下划线开头,可以包含字母、数字、下划线,但不能包含空格、特殊字符(除了下划线)以及Python的保留字。 变量通过赋值操作符`=`来创建和初始化。赋值操作将右侧表达式的值赋给左侧的变量名,从而建立变量与数据之间的关联。例如: ```python x = 10 name = "Alice" ``` 这里,`x`和`name`是变量名,而`10`和`"Alice"`分别是它们所存储的数据值。 #### 7.2.3.2 数据类型与动态类型系统 Python是一种动态类型语言,这意味着变量在创建时不需要显式声明其类型,Python解释器会根据赋值操作自动推断变量的类型。这一特性使得Python代码更加简洁灵活,但也可能导致一些类型相关的错误(如类型不匹配)在运行时才被发现。 ```python a = 10 # a是整数类型 a = "Hello" # 现在a是字符串类型 ``` 在上面的例子中,变量`a`的类型在赋值过程中发生了改变,这体现了Python动态类型系统的灵活性。 #### 7.2.3.3 变量的作用域 变量的作用域决定了变量在程序中的可见性和生命周期。Python中的变量作用域主要分为四种:局部作用域、嵌套作用域、全局作用域和内置作用域。 - **局部作用域**:函数内部定义的变量,仅在函数体内可见。 - **嵌套作用域**:嵌套函数内定义的变量,对外层函数是可见的,但对外部其他函数或全局环境不可见。 - **全局作用域**:模块级别定义的变量,在整个模块内(包括所有函数)都是可见的。 - **内置作用域**:Python内置的变量和函数,如`len()`、`print()`等,在Python程序的任何地方都是可见的。 理解变量作用域对于编写清晰、可维护的代码至关重要。错误地假设变量的作用域可能导致难以追踪的错误。 #### 7.2.3.4 变量的可变性与不可变性 Python中的数据类型根据其是否可以被原地修改(即不创建新对象而直接改变对象的内容)分为可变类型和不可变类型。 - **不可变类型**:如整数(int)、浮点数(float)、字符串(str)和元组(tuple)。这些类型的对象一旦被创建,其内容就不能被改变。任何看似修改其内容的操作实际上都会创建一个新的对象。 ```python s = "hello" s += " world" # 这实际上是创建了一个新的字符串对象并赋值给s ``` - **可变类型**:如列表(list)、字典(dict)和集合(set)。这些类型的对象允许在创建后修改其内容,而不需要创建新的对象。 ```python lst = [1, 2, 3] lst.append(4) # 直接修改了lst对象的内容 ``` 理解可变性和不可变性的区别对于编写高效的代码、避免不必要的内存分配以及理解函数参数传递方式至关重要。 #### 7.2.3.5 特性(Attributes)与特殊方法(Magic Methods) 虽然章节标题中提到了“特性”,但在Python的常规语境下,我们通常指的是对象的属性(Attributes)或特殊方法(也称为魔法方法,Magic Methods)。这里简要介绍两者,以拓宽读者对变量及其相关概念的理解。 - **属性(Attributes)**:对象的属性是对象的特征或状态,可以通过点(`.`)操作符访问和修改(如果属性是可写的)。Python中的一切皆是对象,包括基本数据类型(如整数、字符串)和复合数据类型(如列表、字典)。这些对象通常都有一些内置的属性。 ```python s = "hello" length = len(s) # 调用内置函数len(),而不是访问字符串对象的length属性 # 但字符串对象有诸如.upper()、.lower()等方法,可以视为一种特殊的属性 ``` - **特殊方法(Magic Methods)**:Python中的特殊方法是一系列以双下划线开头和结尾的方法,它们定义了对象的内置操作行为。例如,`__init__`用于对象的初始化,`__str__`定义了对象的字符串表示形式,`__add__`定义了对象相加的行为等。通过定义这些方法,Python允许我们自定义对象的行为,使其更加符合特定的需求或协议。 ```python class MyNumber: def __init__(self, value): self.value = value def __add__(self, other): return MyNumber(self.value + other.value) def __str__(self): return f"MyNumber({self.value})" n1 = MyNumber(5) n2 = MyNumber(3) print(n1 + n2) # 输出: MyNumber(8),调用了__add__特殊方法 ``` #### 总结 变量和特性是Python编程中不可或缺的基础概念。通过深入理解变量的基本概念、数据类型与动态类型系统、作用域、可变性与不可变性,以及特性与特殊方法,我们可以更加熟练地编写高效、可维护的Python代码。在进阶学习的过程中,不断实践和应用这些概念,将帮助我们构建更加复杂、功能丰富的程序。希望本章内容能为你的Python编程之旅增添一份助力。
上一篇:
7.2.2 块、子句和主体
下一篇:
7.2.4 函数和方法
该分类下的相关小册推荐:
Python与办公-玩转PPT
剑指Python(磨刀不误砍柴工)
Python高性能编程与实战
Python机器学习基础教程(下)
Python合辑4-130个字符串操作示例
Python与办公-玩转PDF
Python面试指南
Python爬虫入门与实战开发(下)
Python合辑13-面向对象编程案例(上)
Python合辑2-字符串常用方法
Python与办公-玩转Excel
Python自动化办公实战