Python3 变量

变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。变量在程序中就是用一个变量名表示,变量名必须是大小写英文、数字和_的组合,且不能用数字开头。总之,记住一句话:变量无类型,对象有类型。怎么理解?比如:

>>> a = 5
>>> a
5

在以上的例子中,a为变量名,=为赋值语句,5就是整型对象。在计算机中,程序会开辟出一个内存空间来存储整型对象5,然后将变量a指向该对象(实际上是指向该对象内存地址)。变量还可以是字符串、布尔类型等等。

>>> b = 'Python'
>>> b
'Python'
>>> c = True
>>> type(c)
<class 'bool'>

像Python这种变量本身类型不固定的语言称之为动态语言,与之对应的就是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下:

int a = 123 	//a是整数类型变量
a = "abc"		//错误:不能把字符串赋给整型变量

与静态语言相比,动态语言更灵活就是这个原因。但是需要注意的一点是,不要把赋值语句符号等同于数学的等号。比如:

x = 2
x = x + 2

如果从数学上去理解x = x + 2那是想破头都解释不了的。在程序中,是这样的:赋值语句先计算右边的表达式x + 2,得到结果4,再赋给变量x,所以此时变量x的值就是4了,而不再是之前的2。
接下来,通过一个例子更好的理解变量在计算机内存中的表示。如上面所说的,a = 5,实际上,Python解释器做了两件事情:

  1. 在内存中创建了一个5的整数型数据对象
  2. 在内存中创建了一个名为a的变量,并把它指向5
a = 'abc'
b = a
a = 'def'
print(b)

在上面的例子中,变量b的输出到底是abc还是def呢?让我们一步一步来分析:
首先,执行a = 'abc',解释器创建字符串abc和变量a,并把a指向abc;接着执行b = a,解释器创建了变量b,并把b指向a所指向的字符串abc;然后再执行a = 'def',解释器创建了字符串def,并把a的指向改指为def,但b的指向并没有改变。因此最后打印出来的变量b的结果自然是abc

常量

所谓常量就是不能改变的变量,比如常用的数学常数π就是一个常量。在Python中,通常会用全部大写的变量名表示常量:

PI = 3.14159265359

但事实上,PI仍然是一个变量,Python中根本没有任何机制保证PI不会被改变,用全部大写的变量名来表示常量只是一个约定成俗、习惯上的用法。它不同与Java有特定的机制保证声明了常量后不会被改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值