变量与常量(8)

作者: 程序员夏天 | 来源:发表于2020-01-09 21:35 被阅读0次

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

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

无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。

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

  • 执行a = ‘Jack’,解释器创建字符串‘Jack’对象和变量a,并把a指向‘Jack’对象;
  • 执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack’对象;
  • 执行a = ‘Tom’,解释器创建字符串‘Tom’对象,并把a改为指向‘Tom’对象,与b无关。
image.png-43.8kB

最后我们还要说下常量!

常量就是不变的变量,比如常用的数学常数圆周率就是一个常量。在Python中,通常用全部大写的变量名表示常量:

PI = 3.14159265359

但事实上,从Python语法角度看,PI仍然是一个变量,因为Python根本没有任何机制保证PI不会被改变。你完全可以给PI赋值为10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。

常量通常放置在代码的最上部,并作为全局使用。

上一篇:基础语法 (7)

下一篇:运算符

#同时小编创建了一个Python千人交流群,群里也有Python零基础到进阶资料提供下载,欢迎喜欢学习交流的朋友!!!进群验证:简书

相关文章

  • 变量与常量(8)

    变量:在程序运行过程中,值会发生变化的量 常量:在程序运行过程中,值不会发生变化的量 无论是变量还是常量,在创建时...

  • 初探php

    常量与变量 变量:$; 常量:const;可以使用define定义常量;

  • [Swift]-基本语法

    变量与常量 声明常量与变量 声明常量或变量时进行类型标注 开发中尽量使用常量,因为常量运行效率跟高。 命名规则 区...

  • Swift 5.0 语法

    1 常量与变量 let声明常量 var声明变量 let constant ="常量" var variable...

  • Swift基本数据类型

    1. 常量与变量(Constants and Variables) 常量 一次定义多个常量 变量 一次定义多个变量...

  • swift基础学习

    1、常量与变量的声明 let:常量 var:变量 在声明常量和变量时,可以使用注解来注明该变量或常量的类型。eg...

  • 常量,变量,类型推导,隐形转换

    变量与常量 swift中的常量与变量分别使用let与var进行声明使用,常量名或者变量名要与数据类型之间使用 ”:...

  • Swift4.2基础学习笔记(一)

    参考资料与链接https://www.cnswift.org 常量和变量 声明常量和变量 类型标注 命名常量和变量...

  • 一、(1.1)Swift常量 变量 常见数据类型 类型安全与

    常量 变量 常量和变量将名称与特定类型的值相关联。常量设置后无法更改,变量可以在将来设置不同的值。 常量 变量的声...

  • Kotlin基础知识(一):变量声明与数据类型

    一、Kotlin常量与变量 链接:Kotlin——初级篇(二):变量、常量、注释 1-1、变量 Kotlin中变量...

网友评论

    本文标题:变量与常量(8)

    本文链接:https://www.haomeiwen.com/subject/gasuactx.html