02 python入门


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

一 编程语言分类:

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专业版

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

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值