【python】常量与变量

1、代码
  (1)机器码:由二进制组成,是给计算机看的,计算机可以直接执行。
  (2)汇编码:由数字、字母和符号组成的代码。
               汇编语言书写的代码必须按照计算机的计算流程
               (写代码的流程就是模拟计算机运行的过程)
        make space a in 3
        make space b in 4
        make space c in a add b
        c=a+b
        
    (3)高级编程语言源码:由数字、字母和符号组成的代码。 
                          (可以按照人类的思维习惯去书写)
         源代码转变为机器码:编译
        int a=3;
        int b=4;
        int c=a+b;
    

2、常量:不变的量  
  (1)直接在程序中出现的数据(字面量)
  print(3)   #3为常量
  print("Hello World")    #Hello World 为常量
  (2)将一个变量通过一些手段变成常量
      限制变量的值不可修改。
      特殊的:python中不存在第二种
  const int a=3;
  define PI 3.14    
3、变量:变化的量
     变量的本质就是进程空间中的一个临时的存储空间。
     并且该临时存储空间有其自己的一个物理内存地址(计算机随机分配)
     因为变量的地址数随机的,我们不应该直接通过过该变量的地址去操作数据。
     怎么办?我们可以给变量起个别名(变量名)
       系统底层会自动为变量名称和其针对的变量地址做一个表格。
         (C语言中,变量的地址被称为指针)
     那,该空间中存什么?无论哪种语言,变量空间中永远不可能存数据本身,
                         存的是数据的地址。
    
    常量池中:存常量数据的地址
    堆内存中:存对象数据地址
    进程中:存变量的地址
    

    C:里面只有常量在常量池中的地址和变量地址
    java:里面只有常量池中的地址和堆中的地址
    python:里面只有堆中的地址(对象)
        python中一切数据皆对象。

 

【python】常量与变量_第1张图片

 

【python】常量与变量_第2张图片

 4、高级编辑语言之间的区别:
  (1) 静态编译型:C/C++/Java (除C及C++外的编程语言都无指针概念,变量的地址不可访问,只能访问数据的地址)
        编译:先将源代码整体编译完成,生成一个可执行程序,然后生成一个可执行程序即可
            如:英语书---翻译为-----中文书
                C: .c----编译----.exe
                java: .java---编译----.class 
        静态:变量数据类型一旦确定则不可更改。            
   (2)动态解释型:Python/JavaScript/Matlab
        解释:逐行进行编译且运行
            如:同声传译(说一句翻译一句)
        动态:变量数据类型随着数据的变化而变化。
     
     
5、id()函数: 查看当前数据的地址
a=3
print(id(a))   #查看a所存储的数据在堆内存中的地址
print(id(3))   #查看3这个数据在堆内的地址
print(type(a))  #int

a=3.14
print(id(a))   #查看a所存储的数据在堆内存中的地址
print(id(3))   #查看3这个数据在堆内的地址
print(type(a))  #float

a="大桥未久"
print(id(a))
print(id("大桥未久"))
print(type(a))

#单行注释
"""
多行注释
"""

6.bug的由来

【python】常量与变量_第3张图片

重点:
     变量本身是内存当中的一个临时存储空间,该空间中存的数据地址(数据都在堆)
     变量的数据类型随着所存储的数据变化而变化。

你可能感兴趣的:(Python,基础)