CC++ & Algorithm

想要写出灵活的代码?先搞懂变量和常量的“变与不变”

2026年7月26日关联知识点:变量与常量20 次阅读

你有没有想过,为什么程序里有些东西必须锁定,有些却又可以随意更换?比如计算圆的面积时,π是亘古不变的常量,而半径却是每次可变的变量。这不仅仅是为了规范,更是编程思维的基石——搞懂“变”与“不变”,你的代码才能既灵活又可靠。

变量:那个可以随时换东西的盒子

变量就像你书包里的空间。今天装课本,明天装零食,书包还是那个书包,但内容随心变。在Python里,用 = 就能把数据“装”进变量:

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

注意,这里的 age 只是名字,它指向的值可以随时替换。你甚至可以把变量用在计算中:

age = 10
next_year = age + 1
print(next_year)  # 11

变量能装什么?数字、文字、布尔值、列表……几乎所有东西。比如记录零花钱和游戏名:

money = 20
game = "Minecraft"
is_fun = True

变量命名那些坑

命名有规矩:字母、数字、下划线,但不能以数字开头。大小写敏感——Ageage 是两码事。还有几个关键词不能用,比如 ifforclass

来看一个经典题目:

以下哪个是Python中合法的变量名?

这题考的就是命名规则。常见陷阱:2score(数字开头)、my-name(短横线不行)、class(关键字)。合法的是 score2my_name 这类。记住:Python的关键字列表里,TrueFalseNone 也是,别用来当变量名。如果拿不准,随手在交互环境里敲个 print(2score) 试试——报错就是非法。

常量:那个刻在石头上的数字

常量代表不变的值,比如圆周率 π ≈ 3.14,或者你的生日。程序员用全大写命名来约定“别改我”:

PI = 3.14
BIRTH_MONTH = 7

但Python并没有强制保护——你依然可以写 PI = 3.0 让程序跑起来。这就像在考场上把准考证号涂改掉,虽然没人当场抓你,但后续改卷的人会摸不着头脑。规则是给别人看的,也是给自己看的

为什么需要常量?

看一个场景:计算多个圆的面积。半径变化,π不变。把π定义为常量,代码自文档化:

PI = 3.14159
radius = 5
area = PI * radius * radius

如果你需要更精确的π,只需要改常量一处。否则,如果你在代码里硬编码了10处 3.14,改起来既麻烦又容易漏。

另一个题目说:

在Python中,常量一旦定义就不能修改。

这题考的是对Python常量机制的认知。答案是错误——Python没有真正的常量,只是约定。但为什么说它“不能修改”?因为遵守约定的人绝不会改,而违背约定的人已经丢了编程素养。所以,题目陷阱在于“一旦定义就不能修改”把约定说成了语法强制。你写 PI = 3.0 不会报错,但这段代码已经不合格了。

新手最常犯的4个错

  1. 大小写写错name = "小明" 却写 print(Name) —— 报错。Python不认“长得很像”的名字。
  2. 没赋值就使用print(total) 但之前没 total = ... —— 抛出 NameError。记住:变量必须先有值。
  3. 手滑改了常量PI = 3.14 后面又 PI = 3.0 —— 语法没错,但破坏了可读性。一个好习惯是:所有全大写的变量,绝对不给它第二次赋值。
  4. 变量名用了关键字if = 10 —— 报错,因为 if 是控制流关键字。牢记Python关键字列表。

一个完整的示例:计算多个圆面积

把变量和常量的配合展现出来:

PI = 3.14159
radius1 = 3
radius2 = 5
radius3 = 10

area1 = PI * radius1 * radius1
area2 = PI * radius2 * radius2
area3 = PI * radius3 * radius3

print("半径为3的圆面积:", area1)   # 28.27431
print("半径为5的圆面积:", area2)   # 78.53975
print("半径为10的圆面积:", area3)  # 314.159

# 变量可以改,常量别碰
radius1 = 4
area1 = PI * radius1 * radius1
print("半径改为4的圆面积:", area1) # 50.26544

运行后看到,radius1 变了,面积也随之变,而 PI 始终如一。这就是“变与不变”协作的威力。

写在最后

变量和常量看似简单,但它们是程序逻辑的骨架。变量让你能灵活处理动态数据,常量让你守住规则的边界。下一步,你可以学习数据类型(整数、浮点数、字符串的区别),以及用 input() 让用户动态输入,再用常量和变量进行计算,写一个真正能交互的小程序。

记住:编程不是背诵语法,而是理解“什么该变,什么不该变”的设计思维。当你开始纠结“这里该用变量还是常量”时,你已经超越了初学阶段。


关于作者

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

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

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

这篇文章对你有帮助吗?

成为第一个评价的人

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