编程语言分类
编程语言分为:
1.机器语言:直接用二进制的0和1和计算机(CPU)直接沟通交流,直接操作硬件。
2.汇编语言:用简单的英文标签来表示二进制数,直接操作硬件。
3.高级语言:它并不是指某一种语言,而是包括很多编程语言,比如:PHP、c/c++、Java、C#、python、go等
# 机器语言
优点:不需转换,计算机能直接读懂,执行速度快。
缺点:二进制代码复杂多样,理解甚难,开发效率低。
ps:站在奴隶的角度说奴隶能够听得懂的话
0000 代表 加载 (LOAD)
0001代表 存储(STORE)
暂存器部分示例
0000 代表暂存器 A
0001 代表暂存器 B
存储器部分示例
000000000000 代表地址为 0的存储器
000000000001 代表地址为 1的存储器
000000010000 代表地址为 16的存储器
100000000000 代表地址为 2^11的存储器
0000,0000,000000010000 代表 LOAD A, 16
0000,0000,000000000001 代表STORE B, 16
0001,0001,000000000001 代表 STORE B, 1[1]
# 汇编语言
优点:开发效率高于机器语言
缺点:执行效率较机器语言低
# 高级语言
高级语言可分为两类:
编译型:在应用源程序执行之前,就将源程序代码“翻译”成目标代码(机器语言),因此目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件是CPU可理解的二进制代码组成的)。比如:c、c++ 、deiphi
优点:使用方便,程序执行效率较高。
缺点:开发效率低,一旦应用程序需要修改,必须先修改源代码,再重新编译生成目标文件才能执行,只有目标文件而没有源代码,修改很不方便,依赖编译器,跨平台性差些。
解释型:类似于“同声翻译”,应用程序源代码一边由相应语言解释器“翻译”成目标函数一边执行,不能生成可独立执行的执行文件,应用程序不能脱离解释器,但方法比较灵活,可以动态的调整修改应用程序。比如:Python、java、PHP
优点:开发效率高
缺点:执行效率低
学习难度
机器语言>>>汇编语言>>>高级语言
执行效率
机器语言>>>汇编语言>>>高级语言
开发效率
高级语言>>>汇编语言>>>机器语言
因此Python语言被称为“胶水语言”、“调包侠”。
运行Python程序的两种方式
1、交互式
优点:输入内容立刻就有对应的返回结果
缺点:无法永久保存数据,离开Python应用程序,立刻消失。
2、命令行
优点:可以永久记忆
缺点:运行该文件相对麻烦些
运行一个PYthon文件需要的步骤(*****)
1)将Python解释器代码从硬盘读到内存(等价于双击word图标)
2)将你写好的Python文件从硬盘读到内存(等价于双击word文档)
3)解释器读取Python文件中的内容,解释成计算机能够识别的语句
(如果是一个普通文件,仅仅只会讲文件中的内容显示到屏幕上)
IDE开发编辑器
pycharm仅仅只是一个方便我们开发Python程序的工具而已
变量与常量
1.变量
量:衡量/记录事物的状态/特征
变:状态/特征是可以变化的
有了变量才能帮助人记录保存事物的某种状态或特征
变量必须先定义后调用,变量名不加引号。
变量三要素
id():返回的是一串数字,即是内存的地址
type():返回的是该变量对应值的类型
value():该变量指向内存中数据的值
2.常量
Python里没有常量,通常将全部用大写字母写成的变量名看作是常量(是Python程序员约定俗成的)
3.小整数池
>>>a=257
>>>b=257
>>>id(a)
2919979319120
>>>id(b)
2919979576208
>>>c=256
>>>d=256
>>>id(c)
1642892736
>>>id(d)
1642892736
垃圾回收机制
1.引用计数:内存中的数据如果没有任何的变量名与其有绑定关系,那么会被自动回收;
2.标记清除:当内存快要被某个程序占满的时候,会自动触发;
3.分代回收:根据值的存货时间不同,划分不同的等级,等级越高,垃圾回收扫描的频率越低。
垃圾回收机制详见该链接:https://www.cnblogs.com/zhangchaocoming/p/11891411.html