变量:
在程序运行过程中,值会发生变化的量,
常量:
在程序运行过程中,值不会发生变化的量。
不管是变量还是常量,在创建的时候都会在内存中开辟一个空间来保存它的值。
Python 中的变量不需要声明类型。
这是基于 Python 的动态语言特性。变量可以直接使用,无需提前声明类型。例如下面四个变量a、b、c、d,在使用前没有任何类型声明,如int a、str b、list c、int d,这在C和JAVA中是必需的。
>>> a = 4
>>> b = "haha"
>>> c = []
>>> d = 9-5
用“=”号来给变量赋值
a = 100
这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较。上面的a,b,c,d四个变量,就通过“=”号,赋予了不同的值。
每个变量都必须先赋值后才能使用,并且在赋值之前不会创建变量。
新变量通过赋值的动作创建和打开内存空间并保存值。如果不赋值直接使用,会抛出赋值前引用的异常或未命名的异常。例如:
>>> a # 孤单单一个a,什么也表示不了,只能报错
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
a
NameError: name 'a' is not defined
>>> a = 1 # 这样就没问题了,解释器知道a是个新变量了
>>> c.append(1) # c是个什么鬼?
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
c.append(1)
NameError: name 'c' is not defined
Python中,一切事物都是对象,变量引用的是对象或者说是对象在内存中的地址。
这条我们靠后详说。
在 Python 中,变量本身没有数据类型的概念。通常,“变量类型”是变量引用的对象的类型,或者变量值的类型。
>>> a = 1
>>> a = "haha"
>>> a = [1, 2, 3]
>>> a = { "k1":"v1"}
在示例中,变量 a 使用整数值 1 创建,然后更改为字符串“haha”,然后更改为列表,最后更改为字典。变量a是动态变化的,它的值属于不同的数据类型,这是动态语言的特点。
“=”号这个赋值运算符是从右往左的计算顺序。
>>> a = 1
>>> b = 2
>>> c = a + b # 先计算a+b的值,再赋给c
>>> c
3
Python允许同时为多个变量赋值。
例如:a = b = c = 1,最终大家都是1。
也可以同时给多个变量赋值,用逗号隔开,一一对应。
例如:a, b, c = 1, 2, 3,最后a是1,b是2,c是3.
不要把赋值语句的等号等同于数学的等号。
x = 1
x = x + 2
如果 x = x + 2 在数学上被理解,那么无论如何它都是不正确的。在程序中,赋值语句首先对右边的表达式x+2求值,得到结果3,然后将其赋值给变量x。由于 x 之前的值为 1,因此重新赋值后,x 的值变为 3。
同时,理解变量在计算机内存中的表示方式也很重要。当我们写:
a = 'ABC'时,Python解释器干了两件事情:
1.在内存中创建了一个‘ABC’的字符串对象;
2.在内存中创建了一个名为a的变量,并把它指向'ABC'。
你还可以将变量 a 分配给另一个变量 b。这个操作实际上是把变量b指向了变量a所指向的数据,比如下面的代码:
a = 'Jack'
b = a
a = 'Tom'
print(b)
print(a)
最后一个变量 b 的内容是“Jack”还是“Tom”?如果你从数学上理解它,你会错误地得出 b 和 a 与 'Tom' 相同的结论,但实际上 b 的值仍然是 'Jack'!
请牢记:Python中的一切都是对象,变量是对象的引用!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 学完python能赚多少钱10/09
- ♥ Python中生成九九乘法表的方法有哪些?10/24
- ♥ python中的os.path.join()函数是如何进行路径拼接的?10/26
- ♥ 如何在 Python 中使用 zip 函数?10/23
- ♥ 如何在python中导入文件10/15
- ♥ 哪个语言难,python还是c08/31
内容反馈