1、变量的概念
变量(variable)是学习python初始时,就会接触到的一个新的知识点,python是一种动态类型语言,在赋值的执行中可以绑定不同类型的值,这个过程叫做变量赋值操作,赋值同时确定了变量类型。
所谓动态语言、静态语言,其实就是针对变量的类型而言的。
静态语言比较常见的如Java和C#,你在定义变量的时候就得说好了它是什么类型如:int num;
动态语言就不必,为啥不必呢,因为无所谓啊。动态语言的变量可以随时改变类型哦,比如:
>>>a=6 #此时a是整数类型
>>>a=6.1 #此时a是浮点数类型
>>>a=’hello’#此时a是字符串类型
OK,那么好像看起来,动态语言更灵活,更牛逼一点。是的,是更灵活,但是既然要到运行的时候才能确定怎么存储、使用这些变量,肯定会在某些方面(比如性能)上有弱点吧,金无赤足,各有所长嘛。
变量的操作3步曲:创建、写入、读取.
首次输入变量的名称即完成了变量的创建。变量的写入,是通过单等号,将内容赋值给变量,其实这个操作过程就是赋值,即把整型数字6赋值给了变量a,用单等号(赋值符)来连接变量名和值,之后就可以在表达式中引用这个新变量了(变量可以看做是一个存储数据的容器,我们可以把数据内容存储到变量中,并在需要的时候读取使用)
>>>a*3
18
注意:在这个表达式中,先读取变量a的值,然后引用参与运算;在赋值时,值是什么数据类型,就决定了这个变量的类型,变量名引用了数值的同时也引用了它的类型。type()函数可以查看一个变量的类型,如下:
>>> type(a)
#int是用于定义整数类型变量的标识符
2、变量命名规范
1、变量名可以包括字母、数字、下划线,但是数字不能做为开头。例如:name1是合法变量名,而1name就不可以。
2、系统关键字不能做变量名使用
3、除了下划线之个,其它符号不能做为变量名使用
4、Python的变量名是除分大小写的,例如:name和Name就是两个变量名,而非相同变量哦。
3、Python中变量的保存
Python中变量是如何切换类型的呢?其实真正牛的不是Python变量,而是Python语言的解释执行器。
举个例子:解释器可以这么运作。首先在内存中地址为XXXX的地方存了一个变量1,然后运行到a=1时,发现整数1要赋值给变量a,所以解释器就知道了变量a是整型,然后变量a就保存在地址XXXX。
然后运行到a=1.1,解释执行器在内存中地址为YYYY的地方存了1.1,然后知道了a是浮点类型,最后变量a就保存在地址YYYY。
既然解释器每次在保存变量值(指向地址)时,都要识别值的类型并关联到变量,所以效率肯定会低一点吧。(如果解释执行器是这么运作的话,Python可是有不止一种解释执行器,所以也得看开发解释执行器的人的设计啦)
上面这段话比较复杂,直接略过,之前有提到变量a被保存在地址XXXX,YYYY,好奇的小伙伴肯定想破解谜团吧,解密大戏即将上演,嘎嘎。
4、变量id() is() 与 ==
id()函数非常好理解,就是求变量地址,例如,注意同样是值1,可能对应的地址是不同的,因为在内存为1分配地址时分配了不同地址:
了解了id(),那么is()和==的区别就好理解了。==就是看值相等不,相等就返回True。而is()就是看id相等不,相等就返回True。
举个例子:
True#True,表示变量a与变量b值是相等的
>>> a is b
False#False,地址肯定是不一样的
>>> type(a)
>>> type(b)
5642880
>>> a is c
True
领取专属 10元无门槛券
私享最新 技术干货