1. 操作数基础:什么是操作数?操作数的分类

各位同学,咱们今天聊点最基础的东西——操作数。你可能觉得这玩意儿太简单了,不就是数字吗?嗯,我刚开始学 Python 时也这么想。直到有一次我在项目里写了个表达式,死活跑不出预期结果,debug 了半天才发现……我把变量名拼错了,Python 把它当成了另一个操作数。从那以后,我对“操作数”这三个字再也不敢马虎了。

1.1 到底什么是操作数?

说白了,操作数就是运算符要处理的对象。你写 3 + 5,这里的 3 和 5 就是操作数。你写 name = "张三",这里的 "张三" 也是操作数。任何能被运算符“操作”的东西,都叫操作数。

我习惯把操作数理解成“食材”,运算符就是“厨具”。光有厨具没有食材,你炒不出菜来。Python 也一样——运算符再强大,没有操作数,它什么也干不了。

核心定义:操作数是表达式中被运算符作用的对象。它是构成表达式的基本单元。

1.2 操作数的三大分类

Python 里的操作数,我一般把它们分成三类:常量、变量、字面量。这三兄弟看着像,其实各有各的脾气。咱们一个一个说。

分类 定义 特点 示例
常量 程序运行中值不变的操作数 固定值,不可修改 3.14159、True
变量 通过名称引用的操作数 值可以改变,有内存地址 count、user_name
字面量 直接写在代码里的值 见字如面,一眼看出类型 42、"Hello"

1.3 常量:雷打不动的“硬汉”

常量就是那些在程序运行期间打死也不变的值。比如数学里的 π,你总不能今天 3.14,明天 3.15 吧?

Python 其实没有真正的常量语法——它不像 Java 有 final 关键字。但咱们程序员有个约定:全大写的变量名就当常量用。

# 这些是常量(约定俗成)
PI = 3.1415926535
MAX_RETRIES = 5
DEFAULT_TIMEOUT = 30

# 你当然可以改它,但没人会这么做
# PI = 3.14  # 别这么干,会被同事骂的

我的习惯:项目中所有“魔法数字”我都会定义成常量。比如超时时间、重试次数、分页大小。这样改需求时,改一个地方就行,不用满世界找数字。

1.4 变量:会变脸的“演员”

变量就灵活多了。它像是一个盒子,你可以往里面放任何东西。放数字、放字符串、放列表……甚至放函数。

变量名就是盒子的标签。你通过标签找到盒子,取出里面的值来用。

# 变量赋值
count = 10
count = count + 1  # 现在 count 是 11
count = "现在我是字符串了"  # 嗯,Python 允许这样

这里有个坑,我曾经踩过——变量必须先赋值再使用。你想想看,你去找一个没贴标签的盒子,能找到吗?

# 这行会报错
print(undefined_var)  # NameError: name 'undefined_var' is not defined

避坑指南:我曾经在循环里用了一个没初始化的累加变量,结果程序直接崩溃。记住:用变量前,先给它一个初始值。哪怕 total = 0 也行。

1.5 字面量:代码里的“原样”数据

字面量就是你在代码里直接写出来的值。它“字面”上是什么,值就是什么。比如 42 就是整数 42,"Hello" 就是字符串 "Hello"。

Python 支持多种字面量,我整理了一张表:

类型 字面量示例 说明
整数字面量 42、-7、0b1010 十进制、二进制、八进制、十六进制都行
浮点数字面量 3.14、1.5e10 小数或科学计数法
字符串字面量 "hello"、'world' 单引号双引号都行
布尔字面量 True、False 注意大写
None 字面量 None 表示“什么都没有”
# 各种字面量示例
age = 25              # 整数字面量
price = 19.99         # 浮点数字面量
name = "小明"         # 字符串字面量
is_student = True     # 布尔字面量
result = None         # None 字面量

1.6 三者的关系:一张图说清楚

常量、变量、字面量到底啥关系?我画了张图,你看一眼就明白了。

操作数分类关系图 操作数 常量 变量 字面量 值不可变 值可变,有名称 直接写在代码里 💡 三者关系 字面量是常量和变量的“原料” 常量是“固定标签”的字面量,变量是“可换内容”的标签

1.7 实战:怎么区分它们?

给你一段代码,你能一眼看出哪些是常量、变量、字面量吗?

TAX_RATE = 0.08
total = 0

items = [12.99, 5.49, 8.99]
for price in items:
    total += price * TAX_RATE

print(f"总价: {total}")

咱们来分析一下:

  • 常量:TAX_RATE(全大写,约定为常量)
  • 变量:total、items、price(值会变化)
  • 字面量:0.08、0、[12.99, 5.49, 8.99]、"总价: {total}"(直接写在代码里的值)

小技巧:我判断一个东西是不是字面量,就看它能不能直接“看见”值。能看见就是字面量,看不见(比如要通过变量名去找)就不是。

1.8 总结一下

操作数就是运算符操作的对象。它分三类:

  • 常量——值不变,全大写命名
  • 变量——值可变,通过名称引用
  • 字面量——直接写在代码里的值

这三者构成了 Python 表达式的基本单元。你写的每一行代码,本质上都是在操作这些“数”。理解它们,你就迈出了 Python 编程的第一步。

嗯,今天就到这儿。记住:操作数不是死概念,它是你每天写代码都要打交道的“老朋友”。