文章目录

  • 一 编程语言分类:
    • 1.1 机器语言
    • 1.2 汇编语言
    • 1.3 高级语言
      • 1.3.1 编译型(如C语言):
      • 1.3.2 解释型(如python)
    • 1.4 总结
  • 二 python介绍
    • 2.1 Python解释器
  • 三 安装Cpython解释器
    • 3.1、下载python解释器
    • 3.2、测试安装是否成功
  • 四 第一个python程序
    • 4.1 运行python程序有两种方式
    • 4.2 一个Python程序的运行的三个步骤
  • 五 IDE工具pycharm的使用
    • 5.1、什么是IDE?为何要有IDE
    • 5.2、pychram安装

有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序

一 编程语言分类:

1.1 机器语言

机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件)

用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,不便阅读和书写,还容易出错,且依赖于具体的计算机硬件型号,局限性很大。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

总结机器语言

  1. 执行效率最高

    编写的程序可以被计算机无障碍理解、直接运行,执行效率高

  2. 开发效率最低

    复杂,开发效率低

  3. 跨平台性差

    贴近\依赖具体的硬件,跨平台性差

1.2 汇编语言

汇编语言仅仅是用一个英文标签代表一组二进制指令,毫无疑问,比起机器语言,汇编语言是一种进步,但汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级/底层的语言、贴近计算机硬件

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

总结汇编语言

  1. 执行效率高

    相对于机器语言,使用英文标签编写程序相对简单,执行效率高,但较之机器语言稍低

  2. 开发效率低

    仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低

  3. 跨平台性差

    同样依赖具体的硬件,跨平台性差

1.3 高级语言

高级语言是站在人(奴隶主)的角度,说人话,即用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的,此处的高级指的是高层、开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言。

按照翻译的方式的不同,高级语言又分为两种:

1.3.1 编译型(如C语言):

类似谷歌翻译,是把程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件

  1. 执行效率高

    编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(即机器语言)

    因此其目标程序可以脱离其语言环境独立执行,使用比较方便,执行效率较高

  2. 开发效率低

    应用程序一旦需要修改,必须先修改源代码,然后重新编译、生成新的目标文件才能执行

    而在只有目标文件而没有源代码,修改会很不方便。所以开发效率低于解释型

  3. 跨平台性差

    编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到不同的平台使用

    针对不同的平台必须重新编译,即跨平台性差

现在大多数的编程语言都是编译型的

编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。
大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术。
C、C++、Ada、Pascal都是编译实现的

1.3.2 解释型(如python)

类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行

  1. 执行效率低

    解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码
    这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,
    软件解释器通常会导致执行效率较低

  2. 开发效率高

    用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的,与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。解释程序的优点是当语句出现语法错误时,可以立即引起程序员的注意,而程序员在程序开发期间就能进行校正

  3. 跨平台性强

    代码运行是依赖于解释器,不同平台有对应版本的解释器,所以解释型的跨平台性强

对于解释型Basic语言,需要一个专门的解释器解释执行Basic程序,每条语句只有在执行时才被翻译,
这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,
例如:Tcl、Perl、Ruby、VBScript、JavaScript等

ps:混合型语言

Java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,然后在Java虚拟机上以解释方式执行字节码。

1.4 总结

综上选择不同编程语言来开发应用程序对比

  1. 执行效率:机器语言>汇编语言>高级语言(编译型>解释型)
  2. 开发效率:机器语言<汇编语言<高级语言(编译型<解释型)
  3. 跨平台性:解释型具有极强的跨平台型

由于我们开发是应用程序,而应用程序必须运行于某一个平台之上,应用程序的快慢受限于平台(就好比F1赛车与宝马车同时跑在北京五环高速,都受限于道路环境,车速是差不多的)的快慢,并不是单从语言层面就可以提升整体执行效率的,于是开发效率、跨平台性才是我们需要优先考虑的问题,这就是我们首选python的原因

二 python介绍

谈及python,涉及两层意思,一层代表的是python这门语言的语法风格,另外一层代表的则是专门用来解释该语法风格的应用程序:python解释器

python的创始人为吉多·范罗苏姆(Guido van Rossum)。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus,他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能。于是Guido在1989年的圣诞节期间,开始编写能够解释Python语言语法的解释器。

Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。最新的TIOBE排行榜https://www.tiobe.com/tiobe-index/,Python已飙升至世界第三。

Python可以应用于众多领域,如:人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等

2.1 Python解释器

官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。

python解释器和python语言的关系

  1. Python解释器是一款应用程序,专门用来解释python这门语言风格并执行的
  2. python语言编写的程序最终都是被解释器执行的,所以我们可以这么说python语言更多的都是在调用python解释器的功能,所以解释器性能的高低很大程度决定了我们用python写出来的程序执行效率的高低

三 安装Cpython解释器

Python解释器目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python解释器,在Windows系统上需要安装一下,具体步骤如下

3.1、下载python解释器

打开官网https://www.python.org/,按提示下载即可

Python解释器分为python2和python3两个大版本,语法存在部分不兼容,并且python2已经停止官方维护,官方推荐使用python3,在Python3中有多个小版本,在实际开发中并不推荐使用最新版本,会存在部分不兼容的问题,推荐使用稳定版本,这里采用python3.6.3即可


查看电脑操作系统位数方式为:

鼠标移动到我的电脑,点击鼠标右键,点击属性

在D盘,建立文件夹Service ,在Service文件夹下建立文件夹Python

安装软件,路径尽可能不要出现中文,容易出错,尽量避免安装在C盘,采取自定义安装的方式,方便管理,之后我们会将Python安装在 ‘D:\Service\Python’路径之下

鼠标双击我们下载下来的文件 ’python-3.6.3-amd64.exe’(如果是32位操作系统则双击’python-3.6.3.exe’)

什么是环境变量PATH,有什么作用

环境变量,一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。




3.2、测试安装是否成功

同时按下电脑的win+r键盘,(就是Fn和Alt中间的窗户标志那个键盘),输入’cmd’,按下enter键,或者点击确定都可以

在黑窗口中输入 python -V (全部都是英文状态),显示如下界面,即表示成功安装

四 第一个python程序

4.1 运行python程序有两种方式

方式一: 交互式模式

即时得到程序结果,多用于调试(辅助作用)

方式二:脚本文件

把程序写到文件里(约定俗称文件后缀名为.py),然后用Python解释器解释执行其中的内容.在cmd中:python python脚本的路径.文件内容才是关键要符合语法,文件后缀名不是关键,是txt也行啊,但为了规范还是py


总结:

  1. 交互式模式下可以即时得到代码执行结果,调试程序十分方便
  2. 若想将代码永久保存下来,则必须将代码写入文件中
  3. 我们以后主要就是在代码写入文件中,偶尔需要打开交互式模式调试某段代码、验证结果

4.2 一个Python程序的运行的三个步骤

假设: python C:\a\b.py 执行Python程序经历的三个步骤

  1. 先启动Python解释器
  2. 解释器会发送系统调用,把b.py的内容从硬盘读入内存,此时c.py中的内容全部为普通字符,没有任何语法意义
  3. 解释器开始解释执行刚刚读入内存的c.py的代码,开始识别python的语法

对比文本编辑器读取 C:\a\b.py文件内容也经历了三个步骤

  1. 先启动文本编辑器
  2. 文本编辑器会发送系统调用,把b.py的内容从硬盘读入内存
  3. 文本编辑器会将刚刚读入内存的内容控制输出到屏幕上,让用户看到结果

总结:二者在前两个阶段做的事情完全一致。唯一不同的就是第三阶段对读入内存的python代码的处理方式不同

五 IDE工具pycharm的使用

5.1、什么是IDE?为何要有IDE

在编写第一个python程序时,存在以下问题,严重影响开发效率

问题一:我们了解到一个python程序从开发到运行需要操作至少两个软件

  1. 打开一个软件:文本编辑器,创建文本来编写程序
  2. 打开cmd,然后输入命令执行pyton程序

问题二:在开发过程中,并没代码提示以及纠错功能

综上,如果能有一款工具能够集成n个软件的功能,同时又代码提示以及纠错等功能,那么将会极大地提升程序员的开发效率,这就是IDE的由来,IDE全称Integrated Development Environment,即集成开发环境,最好的开发Python程序的IDE就是PyCharm

5.2、pychram安装

# 下载地址: https://www.jetbrains.com/pycharm/download  选择Professional专业版

安装完成后注册,然后启动,会让你先创建一个项目,其实就是一个文件夹,我们以后的代码都存在这里面

02 python入门相关推荐

  1. python入门基础教程02 Python简介

    02 Python简介 Python简介 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,属于应用层软件.自从20 世纪90 年代初Python语言诞生至今,它逐渐被广泛应用于处理 ...

  2. 哪本python入门书内容最详细-重磅 | 由浅入深的 AI 学习路线,最详细的资源整理!...

    原标题:重磅 | 由浅入深的 AI 学习路线,最详细的资源整理! [导读] 本文由知名开源平台,AI技术平台以及领域专家: Datawhale, ApacheCN, AI有道和 黄海广博士联合整理贡献 ...

  3. python课程推荐-课程推荐:四天人工智能 python入门体验课

    作为一名被大数据和数量信息包裹的文案,我们必定要在文案力.创意和策略能力之外,准备一个加薪引擎--以技术思维处理数据运算的能力. 只有跑得足够快,才能不被行业当成 "老古董" 落下 ...

  4. python3入门与进阶笔记_16_变量进阶 — 黑马程序员《Python入门教程完整版》笔记...

    变量进阶(理解) - 黑马程序员<Python入门教程完整版>笔记 目标变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用变量 和 数据 都是保存在 内存 中的 在 Py ...

  5. Python入门知识点总结

    Python基础的重要性不言而喻,是每一个入门Python学习者所必备的知识点,作为Python入门,这部分知识点显得很庞杂,内容分支很多,大部分同学在刚刚学习时一头雾水. 本节将Python的知识点 ...

  6. python入门if语句练习_python入门视频:09 if语句_练习.mp4

    本视频课程目录如下: python6天学习基础课程    ├─01天 │      python入门视频:01 计算机组成-硬件设备.mp4 │      python入门视频:02 计算机组成-软件 ...

  7. 儿童编程python入门_儿童编程python入门

    经常会有小朋友问我,"我想做个黑客,我该学什么编程语言?",或者有的小朋友会说:"我要学c,我要做病毒".其实对于这些小朋友而言他们基本都没有接触过编程语言,只 ...

  8. python入门经典-Python入门经典

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! # 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? 都是多少? ...

  9. python教程吾爱破解_2020年最新python入门到精通教程

    2020年最新python入门到精通教程 资源共享吧良心论坛,一直用心为每位会员服务,希望大家能学有所成,今天为大家分享一套2020年最新python入门到精通教程,如果你是0基础想学习python这 ...

  10. Python入门题031:excel表格筛选重复数据

    题目: 使用 pandas 筛选表格中的重复数据,将筛选后的表格保存到新的 excel 文件中. 视频教程: Python入门题031:excel表格筛选重复数据 代码: import pandass ...

最新文章

  1. Scons构建C++项目
  2. FlashInspector 【Firefox浏览器插件,flash分析工具】
  3. Java黑皮书课后题第6章:*6.14(估算π)π可以使用下面的数列进行计算。编写一个方法,对于给定的i返回m(i),并编写一个测试程序,显示如下表格
  4. [LeetCode]二进制求和
  5. 用groovy采集网页数据
  6. Linux下安装ntp时间同步服务器
  7. 【图像融合】简单认识图像融合
  8. mssql linux性能,MSSQL 的Top 和 MAX 效率测试
  9. SSAS实践问题记录--OLAP 存储引擎中存在错误: 处理时找到重复的属性键
  10. lstm数学推导_LSTM简介以及数学推导(FULL BPTT)
  11. IS-IS详解(十二)——IS-IS 路由过载、管理标记和主机名映射
  12. 织梦系统MySQL安装_如何更改已安装的织梦dedecms系统数据库表前缀?
  13. C++primer 7.4节练习
  14. 【转】字符串编辑距离
  15. linux db2v9.7卸载,db2 卸载和安装
  16. 宽带运营商的dns服务器,给大家介绍 几个常用的公共DNS服务器
  17. 前期需求分析以及原型图设计
  18. 汽车零部件行业PLM解决方案
  19. 使用000webhost.com免费主机搭建一个WordPress站点
  20. Sass系统技术选型笔记(2)JBPM

热门文章

  1. H3CSE园区-Smart Link和Monitor Link
  2. R-CNN 原理详解
  3. 小米手机访问电脑共享文件_详细方法步骤教你如何解决小米电视访问电脑共享资源!...
  4. YUI3 CSS框架学习
  5. 近期流行手机病毒“手机骷髅”解决方案
  6. 自适应权重的交叉熵计算
  7. Microsoft Office2010 安装包和安装方法
  8. QQIP纯真数据库调用全国省市地址
  9. powerbuilder防止反编译: pbkiller无法解析的部分公布
  10. 泰克吉时利Keithley数据采集器自动计量校准软件NSAT-3070