一、编程语言分类(***)
编程语言总体分以为机器语言、汇编语言、高级语言,如下:
机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。
尽管机器语言好像是很复杂的,然而它是有规律的。
汇编语言
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言
高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。
特点:
机器语言
优点是最底层,速度最快,缺点是最复杂,开发效率最低
汇编语言
优点是比较底层,速度最快,缺点是复杂,开发效率最低
高级语言
编译型语言执行速度快,不依赖语言环境运行,跨平台差。(编译型-----》Gcc编译器------》机器语言)(C和GO)
解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行。(解释型----》解释器(解释一行执行一行)(Shell Python)
总结:
①执行效率:机器语言>汇编语言>高级语言>(编译型>解释型)
②开发效率:机器语言<汇编语言<高级语言(编译型<解释型)
③跨平台性:解释型具有极强的跨平台性
二、Python介绍(***)
Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。最新的TIOBE排行榜,Python赶超C++占据第3, 与Java、C一起成为全球最流行的3大编程语言。Python崇尚优美、清晰、简单,上手简单,非常适合做为第一门编程语言来学习。
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
三、安装多版本python解释器(*****)
解释器其实也包括编译过程,只是这个编译过程没有生成目标代码。Python解释器由编译器和虚拟机构成,编译器将源代码转换成字节码,然后再通过Python虚拟机来逐行执行这些字节码。
python解释器有很多种:
CPython:C语言开发,使用最广,默认的解释器
IPython:基于CPython之上的交互式解释器
PyPy:采用JIT技术,对python代码进行动态编译,追求执行速度
Jython:运行在Java平台上的解释器,可以直接编译成Java字节码执行
IronPython:同理Jython,运行在 .Net 平台上
虽说有那么多种解释器,但是我们常用的还是CPython,而对于Java、.Net平台来说,更常用网络调用来交互。我个人来说,平时测试经常使用IPython,很方便。
四、第一个Python程序(******)
1 安装python语言的解释器
本机是Windows系统,安装了Anaconda。环境变量中的用户变量下面的path配置Anaconda安装路径。
安装是否成功测试:
输入 python
显示 python3.8.5版本…
2 第一个python程序
有仪式感 hello world
紧接着上一步,在三个键头后面输入print(‘hello world’)
命令行界面显示 hello world
python程序运行的三个步骤
python程序执行过程:
1、执行 .py 文件,就会启动python解释器
2、编译器将源文件解释成字节码
3、虚拟机将字节码转化成机器语言,与操作系统交互
4、程序运行结束后,将字节码存到pyc文件,便于后续直接执行
五、IDE
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。
六、变量(*****)
①在计算机科学中,变量是表示计算机存储器中表示的一些值的名称(通常是字母字符或字)。在数学逻辑中,变量是表示理论的未指定术语的符号,或者是理论的对象,在不参考其可能的直观解释的情况下被操纵。
②为什么要有变量
程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。
③如何定义变量
变量名(相当于门牌号,指向值所在的空间),等号,变量值
name='Egon'
sex='male'
age=18
level=10
七、注释
注释是对关键代码的解释说明(三个单引号、三个双引号、多行注释)
补充:
①PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言 。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
②幸存者偏差(英语:survivorship bias),另译为“生存者偏差 ”,是一种逻辑谬误,选择偏差的一种。过度关注“幸存了某些经历”的人事物,忽略那些没有幸存的(可能因为无法观察到),造成错误的结论。
生存偏见可能导致过度乐观的信念,因为失败被忽略,例如当不再存在的公司被排除在财务业绩分析之外时。它也可能导致他人误认一个群体的成功具有一些特殊属性,而不仅仅是巧合(相关证明了因果关系)。其谬论形式为:幸存过程B的个体A有特性C,因此任何个体幸存过程B需要有特性C。有特性C但无法幸存过程B的个体被忽略不加以讨论。逻辑偏差在于只关注筛选结果做出评估,而忽略筛选条件与筛选机制等资讯。用俗语“死人不会说话”来解释其成因意指当取得资讯之管道,仅来自于幸存者时(因为无从由死者/淘汰者/离场者获得来源),此资讯可能会存在与实际情况不同之偏差。这种偏差可以导致各种错误结论。