Python 变量

Python 变量是什么?

学习一门语言,最先要了解的是什么?当然是词汇啊!就像学英语,再简单的一句话,我们也得先弄清楚每一个单词是什么意思,然后才知道这句话是什么意思,对吧?

学习 Python 也是如此。先来看一句代码:

age = 20

上面这行代码就相当于 Python 中的 “一句话”,我们称之为 “语句”。每一条语句都有它特定的功能,这个跟英语每一句话都有它表达的意思是一样的道理。

变量就像是英语中的词汇。比如前面代码中的 age 就是 Python 中的变量。在 Python 中,变量指的是一个值可以改变的量。也就是说,变量的值在程序运行过程中是可以改变的。想要使用变量,我们就得先给它起一个名字(命名),就像每个人都有自己的名字一样。当别人喊你的名字时,你就知道别人喊的是你,而不是别人。

当 Python 程序需要使用一个变量时,只需要使用这个变量的名字就行了,总不能说:“喂,我要用这个变量”。变量那么多,计算机怎么知道你要用哪个变量呢?

变量的名字一般是不会变的,但是它的值却可以变。这就像人一样,名字一般都是固定下来的,但是每个人都会改变,都会从小孩成长为青年,再从青年慢慢变成老人。

Python 变量就像人一样

Python 变量的命名

在 Python 中,给一个变量命名,我们需要严格遵循以下两个原则。

  • 变量名只能由英文字母、下划线(_)或数字组成,并且第一个字符必须是 “英文字母或下划线”。
  • 变量名不能是 Python 关键字。

对于第一点,变量只能包含字母(大写小写都行)、下划线或数字,不能包含除了这 3 种之外的字符(如空格、%、-、*、/ 等)。因为其他字符已经有其他用途(比如当作运算符)了。

对于第二点,Python 关键字(也叫 “保留字”),指的是 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。

Python 变量的使用

示例 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

上一篇: VSCode 配置 Python

下一篇: Python 常量

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号