走进Python

前言

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

一、计算机语言发展历程

在这里插入图片描述

(1)二进制

计算机能识别的语言,就叫做机器语言,简称机器码。对于二进制来说,可以直接被机器识别,上个世纪50年代之前,工程师直接将二进制机器码和数值编写在打孔卡上,通过读卡机读入计算机存储器,然后执行。

在这里插入图片描述

(2)汇编语言

为了便于阅读,就将机器代码以英文字符串来表示,于是出现了汇编语言

(3)高级语言

一开始人们只用汇编语言进行程序开发,所以只需要将汇编语言翻译为机器语言就可以了。这是相当直截了当的过程,因为汇编语言的助记符和机器指令是一一对应的关系。所以只需要完成一个能够自动查表并转换的程序即可。很快,这样的程序就被发明了出来。称之为"汇编器",最终处理中间代码的程序可以是一个对应平台的汇编器,也可以是一个解释器,将编译的最终产物都视为一系列可以被执行的二进制机器码。

1.1 面向过程

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
在这里插入图片描述

1.2 面向对象

面向对象是相对于面向过程来讲的, 面向对象是以功能来划分问题,而不是步骤。简单的总结就是:面向对象就是高度实物抽象化、面向过程就是自顶向下的编程,而我们的Python采用的就是面向对象。

在这里插入图片描述

1.3 编译型语言

编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制码),像C/C++等都是编译型语言。

1.4 解释型语言

源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如shell、php、python、perl等都是解释型语言。

1.5 静态语言

对于静态语言而言,变量是需要声明类型的,否则的话不能使用,而且变量是不能改变类型的,像C、C++、C#、Java这些编译型语言就属于静态语言。如何对变量的声明呢?比如:int x= 1。一句话:就是需要先编译,然后再在运行。

1.6 动态语言

和静态语言不同的是,动态语言使用变量前不需要声明类型,可以直接拿来使用,比如:x =1,不需要编译,用解释器解释后即可运行。如我们的脚本语言:shell、python、php等解释型语言就属于动态语言。对于Python语言,其运行的过程为:Python源码 —> 编译器(解释器) —> 字节码 —> 编译器 —> 机器码

二、Python特性

(1)面向对象的特性

面向对象的程序设计抽象出对象的行为和属性,把行为和属性分离开,但是又合理的组织在一起。它消除了保护类型、抽象类、接口等面向对象的元素,使得面向对象的概念更容易理解。

(2)简单性

没有分号,使用缩进的方式分隔代码,代码简洁,短小,易于阅读。

(3)内置的数据结构

类似于Java中集合类的功能。python的数据结构包括元组,列表,字典等。元组相当于“读”数组,列表可以作为可变长度的数组使用,字典相当于java中的hashtable类型。

(4)健壮性

提供异常退出机制,能捕获程序的异常情况。

(5)跨平台性

python会先先编译成与平台相关的二进制码,然后再解释执行,这种方式和java类似。

(6)可拓展性

python是用c开发的语言,因此可以使用c扩展python,可以给python添加新的模块、新的类。同时python可以嵌入到c、c++语言开发的项目中,使语言具备脚本语言的特性。

(7)动态性

python不需要另外声明变量,直接赋值即可以创建一个新的变量。

(8)强类型语言

python会根据赋值表达式的内容决定变量的数据类型。python在内部建立了管理这些变量的机制,出现在同一个表达式的不同类型的变量需要做类型转换。

(9)应用广泛

python有许多第三方的库支持。例如:PIL库应用于图像处理,numpy库应用于数学计算,wxpython库应用于GUI程序的设计,Django库应用于web程序的开发等。

三、Python 家族

3.1 CPython

CPython是标准的Python,也是其他Python编译器的参考实现。通常提到"Python"一词,都是指CPython。CPython由C编写,将Python源码编译成CPython字节码,由虚拟机解释执行。没有用到JIT等技术,垃圾回收这些方面,采用的是引用计数。

3.2 Jython

Jython在JVM上实现的Python由Java编写。Jython将Python源码编译成JVM字节码,由JVM执行对应的字节码。因此能很好的与JVM集成,比如利用JVM的垃圾回收和JIT,直接导入并调用JVM上其他语言编写的库和函数。对于想在JVM上使用Python简化工作流程,或者出于某些原因需要在Python语言中使用Java的相关代码,同时无需用到太多CPython扩展的用户来说,极力推荐Jython。

3.3 PyPy

这里说的PyPy是指使用RPython实现,利用Tracing JIT技术实现的Python,而不是RPython工具链。PyPy可以选
择多种垃圾回收方式,如标记清除、标记压缩、分代等。

相对于CPython,PyPy的性能提升非常明显,但对第三方模块的支持却很差。比如无法很好的支持使用CPython的C API编写的扩展,完全不支持使用SWIG、SIP等工具编写的扩展。就连NumPy,也要在编译器的层面
上从头实现。

3.4 Pyston

Pyston由Dropbox开发,使用C++11编写,采用Method-at-a-time-JIT和Mark Sweep——Stop the World的GC技术。Pyston使用类似JavaScript V8那样的多层编译,其中也用到了LLVM来优化代码。Pyston正在发展中,在某些方面还不成熟。

四、Python应用场景

  • 网络爬虫;
  • 数据分析;
  • 人工智能;
  • 软件开发;
  • 网络编程;
  • 游戏编程;
  • 嵌入和扩展;
  • 桌面界面开发 ;
  • 企业与政务应用。

其实Python的应用场景很多,几乎上能处理各种事务。

总结

  • 语言可分为:自然语言和计算机语言;
  • 在计算机语言中,又可分为编译型语言和解释型语言;
  • 一般呢像我们的编译型语言属于静态语言,解释型语言属于动态语言;
  • 在程序设计中又有面向对象程序设计和面向过程程序设计;
  • Python具有诸多特点:如面向对象的特性、跨平台性、动态性、可扩展性等等;
    在计算机语言中,又可分为编译型语言和解释型语言;
  • Python家族有:CPython、 Jython、PyPy、Pyston。其中CPython是标准的Python,也是其他Python编译器的参考实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云计算-Security

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值