美文网首页
01、变量和常量

01、变量和常量

作者: 唐_sri | 来源:发表于2019-06-04 15:06 被阅读0次

变量

变量的概念

  • 变量在第一次赋值时被创建
  • 变量在表达式中被调用时会被替换为它的值
  • 变量在表达式中被调用之前必须已经被赋值
  • 变量应用对象,而且从不需要事先说明

变量从创建的流程

我们来解释一下变量创建的流程,使用 a = 3 来进行解释

1、创建一个对象来代表值3

2、如果内存中不存在变量 a 则进行创建

3、将变量与新的对象3进行连接

变量的命名规则

  • 变量名只能有字母、数字、下划线组成,且不能以数字开头
  • 变量名不能是 Python 的关键字,最好不要和 Python 内置的东西重复
  • 变量名的选取尽量要有意义,要一看就明白该变量指代的内容
  • 当有多个单词连接变量的时候要使用下划线进行连接

垃圾回收机制

先来看两行代码:

>>> a = 3
>>> a = "spam"

通过上面两行代码,可以引申出一个问题:我们先给变量a赋值了一个3,在给变量a赋值了一个字符串spam,那么我们之前给a赋值的3在我们又给a赋值了一个spam后发生了什么?

答案是,在Python中,每当一个变量名被赋予一个新的对象,如果原来的对象没有被其他的变量名或对象所引用的话,那么之前的对象所占用的内存空间就会被回收。

共享引用

>>> a = 3
>>> b = a

当我们运行赋值语句 b = a之后,变量b就成为对象3的一个引用,在内部,变量实际上时一个指针指向了对象的内存空间,该内存空间是通过运行字面量表达式3创建的。这种情况在Python中称为共享引用,即多个变量名引用了同一个对象;值得注意的是变量a和变量b此时没有彼此关联,真实情况是这两个变量通过它们的引用指向了同一个对象。

>>> a = 3
>>> b = a
>>> print(b)
3
>>> a = 4
>>> print(b)
3

通过上面的例子可以看出来,当我们将a的值进行改变的时候,b仍然不会改变;因为这时Python会重新划分一个内存空间链接到a,所以b并不会有什么影响。

关于列表的共享引用

>>> L1 = [1, 2, 3]
>>> L2 = L1
>>> print(L2)
[1, 2, 3]
>>> L1[0] = 0
>>> print(L2)
[0, 2, 3]

可以发现L2随着L1的变化而发生了变化,这是因为L2指向的是L1的整个列表,而并非某一个元素,所以会按照L1的变化而发生变化;如果要避免这中情况可以使用copy对象而不是使用引用;如:

>>> L1 = [1, 2, 3]
>>> L2 = L1[:]
>>> L1[0] = 0
>>> print(L2)
[1, 2, 3]

常量

常量中程序的整个生命周期内都不能发生变化,Pyhon没有内置的常量类型,但通常使用全大写的来指明该变量为常量,在程序中不应对其进行修改。

is运算符和==运算符

需要注意的是==运算符是测试两个被引用的对象是否具有相同的值;而is运算符是测试两个变量是否指向同一个内存地址。

>>> L01 = [1, 2, 3]
>>> L02 = [1, 2, 3]
>>> L01 == L02
True
>>> L01 is L02
False

相关文章

  • Swift初体验 变量&常量&元组

    一、变量和常量01 变量和常量的定义在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不...

  • 01、变量和常量

    变量的概念 变量在第一次赋值时被创建 变量在表达式中被调用时会被替换为它的值 变量在表达式中被调用之前必须已经被赋...

  • 2.Swift基本数据类型

    变量和常量 使用关键字 let 来声明常量 使用关键字 var 来声明变量01.png 声明常量和变量 可以在一行...

  • Swift 2.0 学习笔记 1_基础部分

    //: 基础部分 //: 常量和变量 //: 声明常量和变量 // let: 常量 var: 变量 let max...

  • 初学Swift 小总结

    Swift 01 Swift最基本的语法变化 Swift 变量&常量 变量使用 let 定义常量,定义后的常量不能...

  • Dart基础系统学习

    目录介绍 01.变量声明1.1 var声明变量1.2 变量和常量1.3 dynamic和Object 02.数据类...

  • 转战Kotlin-变量

    常量和变量1.常量和变量常量:赋值后不可改变 val变量:赋值后可以改变 var 声明变量

  • Swift-基础(常量,变量)

    常量、变量 声明变量和常量 常量和变量必须在使用前声明。 您使用let关键字声明常量,使用var关键字声明变量。 ...

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

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

  • swift 基础语法(常量、变量、数值、布尔型、元组)

    常量和变量 声明常量和变量 常量和变量必须在使用之前声明使用let关键字声明常量使用var关键字声明变量 可以在一...

网友评论

      本文标题:01、变量和常量

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