python概述

0 阅读7分钟

此专栏的第一篇文章,为了让大家能更多的了解python,我们先来介绍一下python的起源、特点、能做什么及如何运行的(python解释器)。

1. Python起源

Python是一门优雅而健壮的编程语言。作者是荷兰人Guido van Rossum(吉多·范罗苏姆),1982年从阿姆斯特丹大学获得了数学和计算机硕士学位。他是一位数学家,但更加享受计算机带来的乐趣。

Guido接触并使用过诸如Pascal、C、Fortran等语言。这些语言的基本设计原则是让机器能更快运行。这些语言也迫使程序员像计算机一样思考。这种编程方式让Guido感到苦恼。即使Guido知道如何用C语言写出一个功能,但整个编写过程需要耗费大量的时间。他的另一个选择是shell。Bourne Shell(是一个交换式的命令解释器和命令编程语言)作为UNIX系统的解释器已经长期存在。shell可以像胶水一样,将UNIX下的许多功能连接在一起。许多C语言下上百行的程序,在shell下只用几行就可以完成。

Guido希望有一种语言既能像C语言那样全面调用计算机的功能接口,又可以像shell那样轻松的编程。1989年圣诞节假期,Guido开始编写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python's Flying Circus(飞行马戏团)。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

Python的设计哲学是“优雅”、“明确”、“简单”。

用一种方法,最好是只有一种方法来做一件事,如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。

Python第一个公开发行版发行于1991年。

2. Python特点

1)Python优点

(1)易于学习:Python关键字少、结构简单、明确定义的语法,学习起来更加简单。

(2)广泛的标准库:Python最大的优势之一就是有着丰富的库。Python语言的核心只包含一些常见类型和函数,而Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。

(3)大量的第三方模块:Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、人工智能、机器学习、Web开发、数据库接口、图形系统等多个领域。

(4)互动模式:可以从终端输入执行代码并立即获得结果。

(5)可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

(6)可扩展:如果需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

(7)免费、开源。

2)Python缺点

(1)运行速度慢:和C程序相比非常慢,因为Python是解释型语言,代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时。而C程序是运行前直接编译成CPU能执行的机器码。

(2)代码不能加密:如果要发布Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是在Windows上常见的exe文件)发布出去。所以,凡是编译型的语言都没有这个问题,而解释型的语言则必须把源码发布出去。

3. Python能做什么

我为什么要选择学 Python,学会之后可以用来做什么?

  1. Web应用开发

拥有Django、Flask等丰富的Web开发框架,能够快速完成网站的开发和Web服务,像Google、豆瓣等都有使用。

  1. 网络爬虫******

可按照一定规则自动抓取互联网信息,用于爬取图片、数据等,在新闻采集、数据挖掘、网站监测、舆情分析等方面应用广泛。

  1. 系统网络运维

适合将运维工作中的大量重复性工作自动化,如管理、监控、发布系统等,可提高工作效率。

  1. 数据分析与科学计算

广泛应用于科学与数字分析,常用Numpy、Scipy等库。可进行数据处理、清洗、转换和计算,还能实现统计分析和数据可视化,帮助理解数据规律和趋势。

  1. 人工智能与机器学习

是人工智能的主要开发语言,拥有TensorFlow、Keras等众多相关库,可用于机器学习、自然语言处理和计算机视觉等领域。

  1. 办公自动化

可用于处理ppt文件、图片处理、文件备份、系统监控等,还能与Excel、Word文档结合,实现数据清洗、分析、批量操作等。

  1. 金融分析与量化交易

可高效处理大量金融数据,开发量化交易模型,进行回测和性能评估、风险管理、算法交易和自动化交易以及金融可视化和报告生成等。

  1. 3D游戏开发

有Pygame、Pykyra等很好的3D渲染库和游戏开发框架,可用于网络游戏开发等。

  1. 桌面GUI应用

Tkinter库可用于设计用户界面,PyQt、Kivy等工具包则有助于跨平台设计UI应用。

4. Python解释器

Python代码是以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。整个Python语言从规范到解释器都是开源的,存在多种Python解释器:

1)CPython

从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

2)IPython

IPython是基于CPython之上的一个交互式解释器,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

3)PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

4)Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

5)IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

4)总结

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

5. Python版本

Python有2个版本,Python2和Python3。

2020年1月1日,官方宣布停止Python2的更新,Python2.7被确定为最后一个版本。

Python 3.x 是现在和未来主流的版本。相对于Python的早期版本是一个比较大的升级,且为了不带入过多的累赘, Python 3.0在设计的时候没有考虑向下兼容,因而许多早期Python版本设计的程序都无法在 Python 3.0上正常执行。但随着Python3使用越来越广泛,大部分新项目开始使用Python3,且大部分三方库已经支持Python3.x,Python3.x已经成为趋势。

Python 3.0发布于2008年 官方所有 Python 版本列表(最完整) www.python.org/downloads/