02-01 编程语言与Python介绍(全为重点)
1、编程语言分类
1.1 机器语言
- 直接用二进制指令去编写程序,直接操作硬件(例:01010101)
执行效率:计算机无障碍理解,直接运行,执行效率最高。
开发效率:复杂,开发效率最低。
跨平台性:贴近、依赖具体的硬件,跨平台性差。(贴近代指需要详细了解计算机硬件细节、直接控制硬件)
1.2 汇编语言
- 用英文标签代表一组二进制指令,本质仍是直接操作硬件。(拓展:操作系统是用汇编语言写的。)
执行效率:相对于机器语言,使用英文标签编写程序相对简单,执行效率高,但较之机器语言稍低
开发效率:仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但复杂性依旧居高不下,所以开发效率依旧较低
跨平台性:同样依赖具体的硬件,跨平台性差。
1.3 高级语言
直接用人类能理解表达的方去写程序,高级语言不能直接被计算机理解,需要转化成二进制指令,并且把中间非常复杂的转换过程封装起来,只需要通过简单的接口就能间接的与计算机沟通。
编译型语言(例:C)(掌握)
1、类似于谷歌翻译,翻译工具就叫编译器。(例:C语言编译器GCC)
2、翻译过程:把程序所有的代码完完整整的编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件。
解释性语言(例:Python)(掌握)
1、于同声传译,翻译工具就叫解释器。
2、过程:解释器读取程序源代码,解释一行,交给计算机执行一行。(了解:解释器解释之前,先转换成中间字节码,再交给解释器)
编译型与解释性比较
执行效率:解释型 < 编译型
开发效率:解释性 > 编译型
跨平台性:解释性 > 编译型
补充:混合型语言(Java)
- Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,然后再Java虚拟机上以解释方式执行字节码。
1.4 总结(掌握)
执行效率:机器 》汇编 》高级(编译 》 解释)
开发效率:机器《 汇编《 高级(编译《 解释)
跨平台性:解释型语言具有极强的跨平台性。
由于我们开发的是应用程序,而应用程序必须运行与某一个平台之上,应用程序的快慢受限于平台(就好比F1赛车与宝马车同时跑在北京五环高速,都受限于道路环境,车速是差不多的)的快慢,并不是但从语言层面就可以提升整体执行效率的,于是开发效率、跨平台性才是我们优先考虑的问题。
2、python介绍
2.1 python解释器的发展史
详细介绍:https://zhuanlan.zhihu.com/p/99531609
现有解释器?还是先有语法?
- 解释器是按照语法的前提制作出来的,只有有了语法,才能被解释执行。
python语言与python解释器的关系(掌握)
python语言编写的程序最终都是被python解释器解释执行的,所以我们可以这么说python语言更多都是在调用python解释器的功能,所以解释器性能的高低很大程度上决定了python写出来的程序执行效率的高低。
python解释器是一款应用软件,专门用来解释python这门语言的语法风格并加以执行。
py2.7版本为什么比3.0版本时间要晚?
3.0版本发布于2008年12月3号
2.7版本发布与2010年7月3号
08年时就推出了3.0,2010年反而又推出了2.7?是因为3.0不向下兼容2.0,而很多公司已经基于2.0版本开发出了大量程序,公司已然投入了大量的人财物力,这就导致大家都拒绝升级3.0,无奈官方只能推出2.7过渡版本。
2.2 python解释器有那些种类?
官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。Python解释器的一些种类如下,简单了解即可
# Jython
JPython解释器是用JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执行,它不但使基于java的项目之上嵌入python脚本成为可能,同时也可以将java程序引入到python程序之中。
# IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。这就好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
# PyPy
PyPy是Python开发者为了更好地Hack Python而用Python语言实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译(注意不是解释),因此运行速度比CPython还要快。
# IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
3、解释器多版本共存
python解释器部分文件夹介绍
1、DDLS:病毒程序需要获取该目录的控制权限
2、scripts:存放pip等exe可执行程序,用来安装第三方库。pip pip2 都是一样的功能,只是名字不同。
关于解释器的一些CMD命令操作
1、切换盘:D:
2、查看python3安装的第三方库目录位置:pip3 -V (前提:安装了path环境变量)
3、查看python2安装的第三方库目录位置:pip2 -V (前提:安装了path环境变量)
配置环境变量需要了解的细节
1、1环境变量寻找的优先级:计算机先从当前文件夹下找,找不到则到设置的环境变量中从前往后检索。
2、用户环境变量只对当前用户生效,系统环境变量争对所有用户都生效。
3、windows7中:使用分号,分隔不同的path路径
python库的虚拟环境介绍
- 开发一款软件,需要定义虚拟环境,避免每个项目所需下载的第三方库在一个pip安装目录下,以免对原生库产生混乱的影响。
4、运行python程序的2种方式
交互式
直接进入python解释器,输入完一行代码一回车,就能得到程序即行结果, 主要用于调试。
脚本式
把程序写入文件中,然后用python解释器,解释执行其中的内容。(虽然文件后缀名不影响python解释器的解释执行,但是文件后缀名约定熟成要以.py结尾)
优点:程序可以永久保存
解释执行:把文件打开一行一行的执行。
总结
- 交互式模式下可以即时得到代码的执行结果,调试程序十分方便
- 若想讲代码永久保存下来,则必须将代码写入文件中。
- 我们以后主要就是将代码写入文件中,偶尔需要打开交互式模式调试某段代码。
5、一个pyhton程序运行的三个步骤(重重点)
执行python程序经历三个步骤:python3 D:test.py
1、启动python解释器
2、解释器会发送系统调用,把test.py的内容从硬盘读入内存,此时test.py中的内容全为普通字符,没有任何语法意义。
3、解释器开始执行刚刚读入内存的test.py代码,开始识别python语法
执行文本编辑器经历三个步骤:D:test.py
1、启动文本编辑器
2、文本编辑器向发送系统调用,把test.py的内容读入内存
3、文本编辑器会将刚刚读入内存的内容控制层输出到屏幕上,让用户看到结果。
总结
- 二者在前两个阶段做的事情完全一样,唯一不同的是第三个阶段对读入内存的python代码的处理方式不同。
6、注释
- 注释是对关键性代码的解释说明,从而增强代码的可读性,且被注释的代码不会被执行。
- 单行注释:
# 注释内容
- 多行注释:
"""注释内容"""
、'''注释内容'''
7、IDE集成开发环境
IDE 英文全称 integrated development environment 继承开发环境
什么是集成开发环境?
实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件。例如:编辑器、代码提示器、调试器、项目管理工具、漂亮的界面,这些工具通常被打包在一起,统一发布和安装,它们统称为集成开发环境