知行编程网知行编程网  2022-09-29 09:30 知行编程网 隐藏边栏  10 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中的变量与常量的相关知识,包括JAVA中的静态常量,以及python中的常量是什么?如何表达这些编程知识,希望对大家有参考作用。

Python 中的变量和常量


变量:

在程序运行过程中,值会发生变化的量,


常量:

在程序运行过程中,值不会发生变化的量。

不管是变量还是常量,在创建的时候都会在内存中开辟一个空间来保存它的值。

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中的一切都是对象,变量是对象的引用!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享