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 编程的第一步。
嗯,今天就到这儿。记住:操作数不是死概念,它是你每天写代码都要打交道的“老朋友”。