2.2 变量

学习任何编程语言的过程中,变量是绕不过的基本元素,C、Java、PHP、Ruby等都有变量这个概念,其意义和作用大同小异。可能这么说比较容易理解,在Python中变量的概念基本上和初中代数的方程变量是一致的。例如,对于计算圆面积的方程式S=πr2,其中π是常量,半径r就是变量,与数学上变量不同的地方是,计算机程序中的变量不仅仅可以是数字,还可以是任意数据类型。

2.2.1 命名规则

在Python中,变量是需要一个变量名来表示的,变量名必须是大小写英文、数字和下划线“_”的组合,而且不能用数字开头。例如:x=1变量x是一个整数,x_001='x_001'变量x_001是一个字符串。等于号“=”是赋值符号,可以把任意数据类型赋值给变量,同一个变量是可以反复赋值的,而且可以是不同类型的变量。

总结一下命名规则。

1)变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下画线构成,不能以数字开头。

2)大小写敏感,大写的A和小写的a是两个不同的变量。

3)不要跟关键字冲突。

2.2.2 使用方法

前面提到,等于号“=”是主要的赋值操作符,使用方法并不复杂,下面通过几个例子来说明。

例2-6 赋值

在等号的左边是变量名称,等号的右边是我们想赋予变量的内容。

注意,赋值并不是直接将一个数值赋给一个变量,尽管可能从字面上来看是这样的。在Python语言中,赋值是通过引用传递的,引用在这里可以理解为存储数值的内存地址。在赋值的时候,无论这个变量是新创建的,还是已经存在的,都是在描述该对象的引用赋值给变量。引用的概念比较抽象,不够直观,没关系,我们在后面会详细讨论这个话题,现在我们只需要知道有这么一个概念就可以,并不影响使用Python。

这里有个小技巧,当我们在调试程序时得到一个未知变量,但是不知道这个变量是什么数据类型,可以使用type方法对变量的类型进行检查。这里提到的type是一种函数,程序设计中的函数和数学上的函数的概念基本一致。在例2-6中,我们给变量赋予了不同类型的数值,下面使用type()检查变量的类型,然后再用print函数将它输出到屏幕上。

例2-7 type函数

在掌握了变量的赋值用法之后,我们可以开阔一下思路。如果我们有三个变量x、y、z,并且想把这三个变量都设置为1,那怎么才能把一个数值赋给多个变量呢?可不可以像写数学公式一样在同一行内多次使用等号呢?实践出真知,我们用命令测试一下。

例2-8 多重赋值

结论:同时赋值给多个变量是完全可以的。这还没完,让我们再进一步思考,是否可以将多个不同类型的数值赋予多个变量呢?来测试一下。

例2-9 多元赋值

结论:两个整数类型的数值1和2以及一个字符串“hello,world”,被分别赋给了x、y和z。这些灵活的赋值技巧,有效减少了编程中的代码量,提高了工作效率。