CC++ & Algorithm

你的书包今天装课本,明天装辣条?编程里的变量和常量就是这个理

2026年6月24日关联知识点:变量与常量17 次阅读

你有没有过这样的经历:早上出门前,你往书包里塞了一本数学书和一支笔;下午放学,你把书倒出来,换进去两包薯片和一罐可乐。书包还是那个书包,但里面的东西可以随时换——这就是变量。而你的生日,比如7月5日,不管过了多少年,它永远刻在户口本上,你改不了,别人也改不了——这就是常量

编程世界里的变量和常量,跟现实中的书包和生日一模一样。理解它们,是写代码的第一道门槛,也是区分“会不会编程”和“懂不懂编程”的分水岭。

变量:贴了标签的盒子

刚开始写代码时,很多人把变量当成一个“存放数据的地方”。这个理解没错,但太浅了。我更愿意把它看作一个贴了名字的盒子:你可以在里面放数字、文字、甚至另一个盒子(引用对象),而且随时可以打开把旧东西扔掉,塞进新的。

看这段最简单的代码:

age = 10
print(age)  # 输出 10
age = 11
print(age)  # 输出 11

变量 age 一开始装着10,后来换成了11。如果这段代码是一个人的年龄变化,那完全合理——今年10岁,明年11岁。但如果把 age 换成 PI(圆周率),然后写 PI = 3.14,再写 PI = 3.1415926,问题就来了:圆周率能随便改吗?数学上不允许,但Python允许——这就是变量和常量的核心区别:变量能变,常量不该变

不过,Python 并没有强制阻止你修改常量。它靠的是一种君子协定:用全大写字母命名的变量,所有人都默认不会去改它。比如 TAX_RATE = 0.13,写代码的人看到这个名字就知道了:这是常量,别动。

一道选择题,考的就是名字规则

来看一个题目:以下哪个是Python中合法的变量名?

——这道题其实在考察你知不知道变量名能“长”什么样。Python变量名的规则就几条:

  • 由字母、数字、下划线组成
  • 不能以数字开头
  • 不能是Python的关键字(比如 ifforclass
  • 区分大小写

假如选项给了 2namemy-var_countclass —— 合法的只有 _count。因为 2name 以数字开头,my-var 含连字符(不是下划线),class 是关键字。

你看,命名规则并不是为了为难你,而是为了让解释器能看懂“这个符号是不是变量”。如果变量名可以以数字开头,那 2name 和数字 2 就傻傻分不清了。

常量:刻在石头上的约定

再来看另一道题:在Python中,常量一旦定义就不能修改。

——这道题考的是对Python语言机制的理解。答案是错误。因为Python里根本没有“常量”这种语法实体。你写 PI = 3.14,它就是变量;你写 PI = 3,它也能执行。所谓常量,只是大家约定俗成的编程习惯:用全大写的名字,并且自觉不修改它。

其他语言(比如Java、C++)会用 constfinal 关键字来强制保护常量,一旦赋值就不能再改,否则编译报错。Python的设计哲学是“我们都是成年人了”,相信程序员会自我约束。但现实是,刚入门的新手经常会不小心把常量改掉,比如写了 TAX_RATE = 0.13,后面又写 TAX_RATE = 0.15,结果整个程序的计算逻辑全乱了。

进阶建议:从会用变成会设计

变量和常量看似基础,但很多代码写得不清晰,根源就在于它们用得不讲究。几点建议:

  1. 变量名要有意义:别写 a = 10,要写 age = 10。看到名字就知道里面是什么。
  2. 常量用全大写+下划线:比如 MAX_CONNECTIONS = 100。一看到这种风格,读者就不敢随便改了。
  3. 能用局部变量别用全局变量:变量的作用域越小,出bug的概率越低。
  4. 如果项目复杂,考虑用枚举或配置类来管理常量:Python的 enum.Enumdataclass 能让常量更安全、可读。

当你开始思考“这个值应该写成变量还是常量”的时候,你就不再是单纯地“写代码”,而是在设计程序了。


关于作者

我是赵老师,持有 NOI 信息学奥赛教练证书,拥有 15 年以上的软件开发经验,从事信息学少儿编程教学已有 8 年时间。

这些年累计帮助 多名 学生通过编程特长升入自己心仪的目标学校。

如果你在编程学习上有任何疑问,欢迎联系我:18620372957(微信同号)

这篇文章对你有帮助吗?

成为第一个评价的人

想系统学习这个知识点?查看完整知识点 →