在Python编程的旅程中,理解数据的存储与运算方式是入门的第一步。变量、常量和表达式构成了编程语言的三大基石,它们不仅决定了代码的组织方式,还影响着程序的可读性与维护性。无论你是刚接触编程的新手,还是希望巩固基础的老手,掌握这些概念都至关重要。本文将结合实例,深入讲解这些基础知识点,并适当对比其他语言(如JavaScript、Go、TypeScript、C++、Java)的实现差异,帮助你建立更全面的编程视角。
一、变量的本质与使用
变量是编程中最基础的概念之一。在Python中,变量可以被理解为内存中用于存储数据的容器。通过给这个容器起一个名字(即变量名),我们就可以方便地存取或修改其中的数据。与其他静态类型语言(如C++、Java)不同,Python的变量不需要提前声明类型,解释器会自动根据赋值推断类型,这大大提高了开发效率。

1.1 变量的定义与赋值
在Python中,变量的定义和赋值是同时完成的,语法非常简洁:
变量名 = 数据值
小贴士:
- Python 中变量不需要提前声明类型,赋值的瞬间就会自动确定数据类型,使用非常灵活。
- 是赋值运算符,作用是把右侧的数据存入左侧的变量中,和数学里的等号含义不同。
以下是一个简单的示例:
# 定义不同类型的变量
name = "小明" # 字符串类型变量
age = 18 # 整数类型变量
height = 1.75 # 浮点数类型变量
is_student = True # 布尔类型变量
# 打印变量,查看存储的数据
print(name)
print(age)
print(height)
print(is_student)
1.2 变量的三大特性
每个变量都具有三个核心属性:
- 变量名:程序员定义的标识符,应遵循见名知意的原则。
- 值:变量实际存储的数据。
- 类型:Python自动推断的数据类型。
要查看变量的类型,可以使用内置函数:
age = 18
print(type(age))
# 输出: <class 'int'>
1.3 变量命名规则
命名规则分为硬性规则和软性建议两部分:
硬性规则(必须遵守):
- 只能由字母、数字、下划线组成。
- 不能以数字开头。
- 区分大小写:
Name和name是两个不同的变量。 - 禁止使用Python的关键字/保留字(如
if、for、while、def等)。
软性规则(建议遵守):
- 见名知意:避免使用无意义的
a、b、c。 - 普通变量使用下划线命名法,单词之间用下划线分隔,例如
user_name、user_age。
✅ 合法变量名示例:
name
age1
my_score
_user
❌ 非法变量名示例:
123age # 错误: 变量名不能以数字开头
my-name # 错误: 不能使用减号(特殊符号)
my name # 错误: 变量名中间不能有空格
if # 错误: if 是 Python 关键字,不能用作变量名
class # 错误: class 是 Python 关键字,不能用作变量名
小贴士: 对比其他语言,如JavaScript和TypeScript通常使用驼峰命名法(camelCase),而Python则更推荐下划线命名法(snake_case)。在Go语言中,变量名首字母的大小写还决定了其可见性(大写为导出)。
1.4 变量的使用技巧
直接使用变量进行运算或输出:
name = "小红"
print(name)
修改变量:直接对已有变量重新赋值,旧数据会被覆盖。
num = 10
print(num) # 输出 10
num = 20 # 重新赋值,覆盖原有数据
print(num) # 输出 20
小贴士:
在 Python 中,修改变量也是使用 = 运算,看起来和定义变量没有明显区别。
多变量同时赋值:
# 方式1: 多个变量对应多个值
a, b, c = 1, 2, 3
# 方式2: 多个变量赋同一个值
x = y = z = 100
两个变量交换值:Python提供了一种非常优雅的方式,无需临时变量。
a = 10
b = 20
a, b = b, a # 直接交换
print(a, b)
⚠️ 注意: 在C++或Java中,交换变量通常需要借助第三个临时变量,而Python的元组解包特性让这一操作变得极其简洁。
二、常量的定义与规范
常量是指在程序运行过程中值固定不变的数据。在其他语言如Java中,常量使用final关键字修饰;在C++中,使用const关键字。然而,Python并没有内置的常量机制,而是通过命名约定来实现。
小贴士:
Python 本身没有严格意义上的语法级常量(不像其他语言有强制限制),行业内依靠命名规范来区分常量和变量,约定俗成进行使用。
2.1 常量的命名规范
Python社区约定:常量名全部使用大写字母,单词之间用下划线分隔。
# 定义常量
PI = 3.1415926 # 圆周率,固定值
MAX_NUM = 1000 # 最大数值限制
COMPANY_NAME = "科技公司" # 公司名称
print(PI)
print(MAX_NUM)
2.2 重要注意事项
Python语法不会阻止你修改“常量”的值,大写命名只是程序员之间的约定,起到提醒作用。
PI = 3.1415926
PI = 3.14 # 语法上不会报错,但违背常量的使用原则,开发中禁止这样做
print(PI) # 最终输出 3.14
总结:看到全大写的名称,就要默认它是常量,不要在代码中修改。
延伸思考: 如果你需要真正的常量保护,可以尝试使用TypeScript的const关键字或Java的final。在Python中,一些第三方库(如typing模块中的Final)提供了类型检查时的常量提示,但运行时仍无法强制约束。
2.3 字面量常量
字面常量就是直接写在代码里的固定值,不需要变量存储,一眼就能看懂。例如数字、字符串、布尔值等。
# 1. 数字字面常量
123
3.14
# 2. 字符串字面常量
"hello"
'Python'
# 3. 布尔字面常量
True
False
# 4. 空值字面常量
None
字面量常量在表达式中非常常见,它们作为操作数直接参与运算。
三、表达式:计算的灵魂
表达式是由变量、常量、字面量、运算符按照语法规则组合而成的式子。表达式运行后一定会产生一个结果值,可以直接打印、赋值给变量,或作为函数参数。
10 + 20 # 表达式
age # 表达式
name + "好" # 表达式
print(123) # 表达式(函数调用)
3.1 组成元素
- 操作数:变量、常量、具体数值(字面量)。
- 运算符:算术运算符、比较运算符、逻辑运算符等。
3.2 表达式与语句的区别
这是一个容易混淆的概念:
- 表达式:有运算结果,可以赋值、打印。
10 + 20
age
name+"123"
- 语句:执行某个动作,没有返回结果。
age = 18 # 赋值语句
if age > 18: # 条件语句
for i in range: # 循环语句
高级对比: 在JavaScript中,赋值语句本身也是一个表达式(返回被赋的值),但在Python中赋值是语句,不能直接用于表达式内部。这一点与Go语言类似。
3.3 常见表达式类型
(1)算术表达式
使用 + - * / // % ** 等算术符号,做数学运算。
1 + 2
10 * 5
8 / 2
(2)比较表达式
使用 > < >= <= == != 比较大小或是否相等,运算结果只有 True 或 False(布尔值)。
10 > 3
5 == 5
age >= 18
(3)逻辑表达式
a > 10 and b < 20
not is_student
(4)函数调用表达式
len("hello")
type(123)
print(123)
(5)复杂组合表达式
(age + 10) * 2
name.upper() + "!!!"
四、综合实战案例:计算圆的面积
让我们结合变量、常量、表达式完成一个简单但完整的计算任务:计算圆的面积。
# 1. 定义常量(圆周率)
PI = 3.14159
# 2. 定义变量(圆的半径)
r = 5
# 3. 表达式:圆面积公式 S = π * r²
area = PI * r ** 2
# 4. 输出结果
print("圆的面积为:", area)
在这个案例中:
PI作为常量,使用全大写命名。radius作为变量,存储用户输入或固定值。area变量通过表达式计算得出。
扩展实践: 如果你熟悉Java或C++,你会发现这里的语法非常相似。在TypeScript中,你可以为变量添加类型注解以增强代码健壮性。而在Go语言中,常量的定义使用const关键字,且类型推断更加严格。
[AFFILIATE_SLOT_1]
五、全文总结
本文详细讲解了Python编程的三大基石——变量、常量与表达式,并通过实例演示了它们在实际代码中的应用。核心要点总结如下:
- 变量:可修改的数据容器,命名灵活,推荐使用下划线命名法,是编程最基础的单元。
- 常量:约定不可修改的固定值,命名全大写,仅靠编码规范约束,Python没有强制机制。
- 表达式:由变量、常量、运算符组合而成,用于运算并产出结果,是实现逻辑计算的核心。
掌握这些基础概念后,你将能更顺畅地学习后续的分支、循环、函数等进阶知识。无论你未来转向JavaScript、Go、TypeScript、C++还是Java,这些核心思想都是相通的。
[AFFILIATE_SLOT_2]

=
浙公网安备 33010602011771号