在Python编程的旅程中,理解数据的存储与运算方式是入门的第一步。变量、常量和表达式构成了编程语言的三大基石,它们不仅决定了代码的组织方式,还影响着程序的可读性与维护性。无论你是刚接触编程的新手,还是希望巩固基础的老手,掌握这些概念都至关重要。本文将结合实例,深入讲解这些基础知识点,并适当对比其他语言(如JavaScript、Go、TypeScript、C++、Java)的实现差异,帮助你建立更全面的编程视角。

一、变量的本质与使用

变量是编程中最基础的概念之一。在Python中,变量可以被理解为内存中用于存储数据的容器。通过给这个容器起一个名字(即变量名),我们就可以方便地存取或修改其中的数据。与其他静态类型语言(如C++、Java)不同,Python的变量不需要提前声明类型,解释器会自动根据赋值推断类型,这大大提高了开发效率。

在这里插入图片描述

1.1 变量的定义与赋值

在Python中,变量的定义和赋值是同时完成的,语法非常简洁:

变量名 = 数据值

小贴士:

  1. Python 中变量不需要提前声明类型,赋值的瞬间就会自动确定数据类型,使用非常灵活。
  2. 赋值运算符,作用是把右侧的数据存入左侧的变量中,和数学里的等号含义不同。

以下是一个简单的示例:

# 定义不同类型的变量
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 变量命名规则

命名规则分为硬性规则和软性建议两部分:

硬性规则(必须遵守):

  • 只能由字母数字下划线组成。
  • 不能以数字开头
  • 区分大小写Namename 是两个不同的变量。
  • 禁止使用Python的关键字/保留字(如 ifforwhiledef 等)。

软性规则(建议遵守):

  • 见名知意:避免使用无意义的 abc
  • 普通变量使用下划线命名法,单词之间用下划线分隔,例如 user_nameuser_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)比较表达式

使用 > < >= <= == != 比较大小或是否相等,运算结果只有 TrueFalse(布尔值)。

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]

在这里插入图片描述=