变量
给数据起的名字。盒子里的东西可以换。
它是什么
变量 像贴在盒子上的标签。 名字指向某个值。 之后可以用这个名字取出或更新它。
程序要记住很多东西:分数、姓名、是否及格。 如果每次都把数字重写一遍,句子会又长又容易写错。 起一个名字,就能反复使用。
score = 95
name = "小明"
ready = True= 读成「放进去」。
左边是名字。
右边是值。
同一个名字可以换内容。 这正是「变」的意思。
名字从哪来
变量的英文是 variable,来自数学里的「可变量」。
代数课上,人们用字母代表一个可以取不同值的数。 16 世纪末,法国数学家弗朗索瓦·韦达开始系统地用字母写方程。 1637 年,笛卡尔在《几何》里约定:前面的字母 a、b、c 多表示已知,后面的 x、y、z 多表示未知。 今天数学题里满天飞的 x,就从这里来。
编程把这个想法搬进电脑。 盒子可以换里面的东西,标签暂时还叫原来的名字。 所以它不是「永远不变的量」,而是「可以变的量」。
Python 里,名字常用小写加下划线,例如 student_name。
这是大家常约定的写法,不是语法强迫,但一起用会好读很多。
它怎么工作
赋值使用一个等号 =。
age = 11
age = age + 1
print(age)先取出旧的 11。 加上 1。 再放回盒子。 最后是 12。
要先赋值,再使用。
还没有的名字直接 print,会变成 NameError。
详见 调试。
命名规则:
- 用小写字母
- 单词之间用下划线
_ - 不能以数字开头
- 不能和
if、for、print这些关键词抢名字 - 尽量见名知意
好名字:student_name、math_score。
不好的名字:2name、if、s。
名字区分大小写。
score 和 Score 不是同一个。
初学一律小写,最省心。
变量里可以放不同 类型。 但不要指望名字自动告诉电脑类型。 类型看的是里面的值。
x = 3
x = "三"同一个标签,先装着整数,再装着文字。 Python 允许这样换。 换完以后,能做的事也跟着变。
生活里在哪里
- 水杯上写「小明」:杯子还是那个杯子,水可以换成茶。
- 座位牌:位子在,坐的人可以换。
- 成绩单上的「语文」:科目名不变,分数每次都会变。
- 游戏角色的生命值:名字叫 HP,数字会减会加。
生活里的标签帮助我们找到东西。 程序里的变量帮助电脑记住东西。
和相近概念的差别
变量是盒子。 数据类型 是盒子里装的是哪一种东西。
= 是放进去。
== 才是问相不相等。
比较请看 比较运算。
函数 的参数也是一种名字。 它只在函数干活的那一阵存在。 和外面的同名变量,不一定是同一个盒子。
常量这个词,在数学里表示「不变的数」。
Python 没有单独的常量语法。
有人把不想改的值写成全大写,例如 MAX_SCORE = 100,只是提醒自己别乱改。
常见误会
误会 1:把 = 当成「等于」。
等于比较要写 ==。
一个等号是放进去。
误会 2:数字开头,比如 1place。
名字不能以数字开头。
横杠 - 也不行,会被看成减法。
误会 3:名字里有中文,电脑就更懂。
Python 允许中文名字,但不推荐。 键盘、报错、别人的电脑,都更习惯英文和下划线。
误会 4:换了内容,旧的值一定还在某个角落。
标签改指新值以后,旧值如果没人再用,就不会再被这条名字找到。
误会 5:print(score) 会把名字这两个字印出来。
它打印的是盒子里的值。
要打印文字 score,得加引号。
想知道更多
- 书:潘洪波《小学生 Python 趣味编程》(用「重要的话说三遍」这类情境讲变量)。
- 书:埃里克·马瑟斯《Python 编程:从入门到实践》(变量和赋值出现在最前面几章,可以和家长一起读)。
未登录时不会保存学习进度