编程语言分为
机器语言(直接用二进制01跟计算机直接沟通交流,直接操作硬件)
优点:计算机能够直接读懂,速度快
缺点:开发效率极低 汇编语言(用简单的英文标签来表示二进制数,直接操作硬件)
优点:开发效率高于机器语言
缺点:执行效率较机器语言 高级语言(直接用人类识别的字符去编写程序,不能直接操作硬件,需要借助特殊工具转换成机器语言去操作硬件
高级语言分为 编译型语言:借助编译器转换成机器语言,一次编译生成执行文件再去执行,若要修改源代码需要重新编译生成执行文件,如C、C++、Delphi等
优点:执行效率高
缺点:开发效率低 解释型语言:借助解释器转换成机器语言,一边解释翻译一边执行,可以随时修改源代码,如Python、Java、PHP、Ruby等
优点:开发效率高
缺点:执行效率低 学习难度
机器语言>>>汇编语言>>>高级语言
执行效率
机器语言>>>汇编语言>>>高级语言
开发效率
高级语言>>>汇编语言>>>机器语言
Python代码执行
1.交互式
- - 控制台直接编写python代码
- - 1.打开终端 2.进入python解释器 3.编写代码--回车执行
优点:输入内容立刻就有对应的返回结果
缺点:无法永久保存数据 2.脚本式(命令行(文件的形式)
- - 文字编写python代码,把文件作为脚本交给解释器执行
- - 1.在文件中编写好代码 2.打开终端 3.用指定版本的接收器命令执行文件
优点:可以永久保存数据
缺点:暂时来看运行该文件有点麻烦 运行一个py文件需要走的步骤
1.将python解释器代码从硬盘读到内存(就等价于双击了word图标)
2.将你写好的py文件有硬盘读到内存(就等价于你双击了一个word文档)
3.解释器解释读取py文件中的内容,解释成计算机能够识别的语句
(如果是一个普通文本文件,仅仅只会将文件内容展示到屏幕上给用户查看,不会检测翻译文件内容)
ps:python解释器于普通的文本编辑器前面两步是一样的,仅仅第三步不一样(一个是解释语法,一个是文本展示)
应用程序使用文件的三步骤
1.打开应用程序:使应用程序运行在操作系统上 2.将文件内容加载到内存:应用程序往操作系统发送打开文件的指令 3.将数据从内存中显示到用户界面:应用程序将数据直接转化成人能识别的字符显示给人进行浏览 # 如果应用程序是python解释器:cpython 1.打开cpython解释器 2.将文件内容加载到内存 3.将数据从内存中拿到解释器中解释执行(存在语法检查) => 1.正常:执行的结果显示给用户 2.异常:错误信息显示给用户
变量
变量:一个可以动态描述物体状态的量 - - 程序中变量本质:在程序运行中,值可以发生改变的量
- - python中所有的量在程序运行中都可以发生改变,所有python中没有绝对的常量 为什么要使用变量:让计算机有记录事务状态的功能 定义变量:
变量名 = 变量值 # 变量名:记录状态的名
# =:赋值符号
# 变量值:记录的状态 命名规范:
# 1.由字母、数字、下划线组成
# 2.不能以数字开头
# 3.避免出现Python关键字 变量的三要素
1.value:该变量指向的内存当中数据的值
2.id():返回的是一串数字,这一串数字你可以直接理解为内存地址
3.type():返回的是该变量对应的数据的类型 使用变量
# 变量值 通过 变量名 直接访问就是访问值
#变量地址 通过 id(变量名) 访问的就是变量堆区的地址
#变量类型 通过 type(变量名) 访问的就是变量的类型 变量创建过程:1.堆区开辟空间存放 变量值 2.将存放 变量值 空间的地址提供给栈区 3.栈区为变量名开辟空间存放提供来的地址 常量(不可变的量)
python里面压根没有常量
通常将全大写的变量名看作常量(python程序员约定俗成的)
垃圾回收机制
垃圾回收机制
1.引用计数:内存中的数据如果没有任何的变量名与其有绑定关系,那么会被自动回收
2.标记清除:当内存快要被某个应用程序占满的时候,会自动触发
3.分代回收:根据值得存活时间的不同,划为不同的等级,等级越高垃圾回收机制扫描的频率越低