Python 变量是什么?
学习一门语言,最先要了解的是什么?当然是词汇啊!就像学英语,再简单的一句话,我们也得先弄清楚每一个单词是什么意思,然后才知道这句话是什么意思,对吧?
学习 Python 也是如此。先来看一句代码:
age = 20上面这行代码就相当于 Python 中的 “一句话”,我们称之为 “语句”。每一条语句都有它特定的功能,这个跟英语每一句话都有它表达的意思是一样的道理。
变量就像是英语中的词汇。比如前面代码中的 age 就是 Python 中的变量。在 Python 中,变量指的是一个值可以改变的量。也就是说,变量的值在程序运行过程中是可以改变的。想要使用变量,我们就得先给它起一个名字(命名),就像每个人都有自己的名字一样。当别人喊你的名字时,你就知道别人喊的是你,而不是别人。
当 Python 程序需要使用一个变量时,只需要使用这个变量的名字就行了,总不能说:“喂,我要用这个变量”。变量那么多,计算机怎么知道你要用哪个变量呢?
变量的名字一般是不会变的,但是它的值却可以变。这就像人一样,名字一般都是固定下来的,但是每个人都会改变,都会从小孩成长为青年,再从青年慢慢变成老人。

Python 变量的命名
在 Python 中,给一个变量命名,我们需要严格遵循以下两个原则。
- 变量名只能由英文字母、下划线(_)或数字组成,并且第一个字符必须是 “英文字母或下划线”。
- 变量名不能是 Python 关键字。
对于第一点,变量只能包含字母(大写小写都行)、下划线或数字,不能包含除了这 3 种之外的字符(如空格、%、-、*、/ 等)。因为其他字符已经有其他用途(比如当作运算符)了。
对于第二点,Python 关键字(也叫 “保留字”),指的是 Python 本身 “已经在使用” 的名字,因此我们在给变量命名的时候,是不能使用这些名字的(因为 Python 自己要用,所以你不能用)。
| False | None | True | and | as |
|---|---|---|---|---|
| assert | async | await | break | class |
| continue | def | del | elif | else |
| except | finally | for | from | global |
| if | import | in | is | lambda |
| nonlocal | not | or | pass | raise |
| return | try | while | with | yield |
示例 1:正确的变量名
n123
current_time
totalSum
_class
hello示例 2:错误的变量名
123n # 不能以数字开头
current-time # 不能包含中划线
total sum # 不能包含空格
class # 不能跟关键字相同
'hello' # 不能包含单引号此外,变量的命名一定要区分大小写,例如 name 与 Name 在 Python 中就是两个不同的变量。尽管 Name 是一个有效的变量,但是变量名使用小写字母开头是 Python 中约定俗成的做法。
Python 变量的命名风格
Python 变量常见的命名风格有两种:一种是 “小驼峰命名法”,另一种是 “蛇形命名法”。小驼峰命名法是指,如果有多个单词,那么第一个单词首字母为小写,从第二个开始的单词的首字母一般为大写,比如 maxValue 或 isLeapYear。蛇形命名法是指,单词与单词之间使用下划线来连接,比如 max_value 或 is_leap_age。
Python 官方的 PEP 8 风格指南中,推荐给变量使用蛇形命名法(也就是使用下划线来连接)。
Python 变量的使用
在 Python 中,对于变量的声明,只需要记住一句话:所有变量都不需要声明,因为 Python 会自动识别数据类型。在这一点上,Python 跟 C、Java 等语言是不同的。
语法:
变量名 = 值说明:
下图表示定义了一个名为 age 的变量,该变量的值为 20。

示例 3:变量的使用
age = 20
print(age)运行结果如下。
20分析:
上面代码中,变量名为 age,变量的值为 20,然后使用 print() 函数来输出这个变量的值。print() 是专门用来输出内容的一个函数,后面会大量使用。
对于变量的命名,我们尽量取一些有意义的名字。当然了,为了讲解方便,本教程中有些变量的命名可能比较简单。
示例 4:变量的值
age = 20
age = 30
print(age)运行结果如下。
30分析:
age 的值不是 20 吗?怎么输出 30 呢?我们可别忘了,age 是一个变量。变量,简单来说就是一个值会变的量。因此,后面的 age = 30 会覆盖前面的 age = 20。下面再来看一个示例。
示例 5:改变变量的值
age = 20
age = age + 1
print(age)运行结果如下。
21分析:
age = age + 1 表示 age 的最终值是在原来 age 的基础上加 1,因此 age 最终值为 21(20+1)。下面代码中,age 的最终值是 16,小伙伴们可以思考一下为什么。
age = 20
age = age + 6
age = age - 10示例 6:变量名不能是关键字
class = 1001
print(class)运行结果如下。
(报错)SyntaxError: invalid syntax分析:
上面代码尝试使用 class 作为变量名。由于 class 是 Python 的关键字,因此程序就直接报错了。
示例 7:为多个变量赋值
a, b, c = 10, 20, 30
print(a)
print(b)
print(c)运行结果如下。
10
20
30分析:
我们可以在一行代码中为多个变量同时赋值,其中变量与变量之间使用英文逗号隔开,而值与值之间也是使用英文逗号隔开。左边有多少个变量,右边就应该提供多少个值。
对于上面例子来说,下面 2 种写法是等价的。
# 写法 1
a, b, c = 10, 20, 30
# 写法 2
a = 10
b = 20
c = 30