Python 概述

本文介绍了Python的起源,它由龟叔为继承ABC语言而开发。阐述了其优缺点,优点包括简单易学、开发效率高、面向对象等,缺点有运行速度慢、中文资料缺乏等。还介绍了其在Web开发、科学计算、服务器软件等方面的应用场景,最后说明了Python是解释型语言及解释器的下载安装方法。

一、python 介绍
(一)python 的起源
python 的创始人 Guido van Rossum(吉多·范罗苏姆,俗称‘龟叔’)。1989 年
为了打发无聊的圣诞节,龟叔决定开发一门新的语言–python
1991 年 python 的一个版本诞生了 python 从诞生到现在大概有 30 年的时间了,
为什么直到最近几年 python 才被人们所熟知,才火起来。我们带着这个疑问继
续往下看~~ 在 80 年代,虽然 IBM 和苹果已经掀起了个人电脑浪潮,但这些个人电脑的配置
很低 (在今天看来)。比如早期的 Macintosh(麦金塔电脑,苹果公司生产的一种型
号的计算机),只有 8MHz 的 CPU 主频和 128KB 的 RAM(内存),(现在的电脑 CPU
主频 2.5GHz,内存 8GB)一个大的数组就能占满内存。因此 80 年代的编程语言例
如 Pascal、C、 Fortran 等语言。这些语言的基本设计原则是让机器能更快运行,
为了增进效率,编程语言也迫使程序员像计算机一样思考,以便能写出更符合机
器口味的程序(让程序员按照计算机思考方式去写程序)。然而,这种思考方式让
Guido 感到苦恼。Guido 知道如何用 C 语言写出一个功能,但整个编写过程需要
耗费大量的时间。
Guido 希望有一种语言,这种语言能够像 C 语言那样能够全面调用计算机的功能
接口(像 C 语言一样功能强大),又可以轻松的编程。ABC 语言让 Guido 看到希望。
ABC 是由荷兰的 CWI 开发的,Guido 在 CWI 工作,并参与到 ABC 语言的开发。
ABC 语言以教学为目的。与当时的大部分语言不同,ABC 语言的目标是“让用户
感觉更好”。ABC 语言希望让语言变得容易阅读,容易使用,容易记忆,容易学
习,并以此来激发人们学习编程的兴趣。
尽管已经具备了良好的可读性和易用性,ABC 语言最终没有流行起来。在当时,
ABC 语言编译器需要比较高配置的电脑才能运行。
ABC 语言的设计也存在一些致命的问题。

  1. 可拓展性差
    ABC 语言不是模块化语言。如果想在 ABC 语言中增加功能,比如对图形化的支持,
    就必须改动很多地方。
  2. 不能直接进行 IO
    ABC 语言不能直接操作文件系统。尽管你可以通过诸如文本流的方式导入数据,
    但 ABC 无法直接读写文件。输入输出的困难对于计算机语言来说是致命的。你
    能想像一个打不开车门的跑车么?
  3. 过度革新
    ABC 用自然语言的方式来表达程序的意义,比如定义一个函数使用 HOW TO (如
    何)。然而对于程序员来说,他们更习惯用 function 或者 define 来定义一个函数。
    这尽管让 ABC 语言显得特别,但实际上增加了程序员的学习难度。
    因此 1989 年,龟叔决定开发一门新的语言 python 作为 ABC 语言的一种继承。
    1991 年,第一个 python 编译器(同时也是解释器)诞生。它是用 C 语言实现的,
    因此 python 语法很多来自 C,但又受到 ABC 语言的强烈影响。比如强制缩进。
    但这些语法规定让 python 容易读。
    python 从一开始就特别在意可拓展性(extensibility)。python 可以在多个层次上拓
    展。从高层上,你可以引入.py 文件。在底层,你可以引用 C 语言的库。python
    程序员可以快速的使用 python 写.py 文件作为拓展模块。但当性能是考虑的重要
    因素时,python 程序员可以深入底层,写 C 程序,编译为.so 文件引入到 python
    中使用。python 就好像是使用钢构建房一样,先规定好大的框架。而程序员可
    以在此框架下相当自由的拓展或更改。
    python 将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的
    编程思考。python 程序员可以花更多的时间用于思考程序的逻辑,而不是具体
    的实现细节 (Guido 有一件 T 恤,写着:人生苦短,我用 python)。这一特征吸引
    了广大的程序员。
    所以许多人开始转向 python。Guido 维护了一个 maillist,python 用户就通过邮
    件进行交流。python 用户来自许多领域,有不同的背景,对 python 也有不同的
    需求。python 相当的开放,又容易拓展,所以当用户不满足于现有功能,很容
    易对 python 进行拓展或改造。随后,这些用户将改动发给 Guido,并由 Guido
    决定是否将新的特征加入到 python 或者标准库中。如果代码能被纳入 python 自
    身或者标准库,这将极大的荣誉。python 自身也因此变得更好。
    python 的功能越来越强大,现在又是人工智能时代。python 正好符合了人工智
    能时代的需求。因此 python 现在越来越火。
    (二)python 优缺点
    优点:
  4. 简单易学:
    python 阅读一个良好的 python 程序就感觉像是在读一篇文章一样。
  5. 开发效率非常高:
    python 有非常强大的第三方库,基本上你想通过计算机实现任何功能,python
    官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行
    开发,大大降低开发周期,避免重复造轮子。
  6. 面向对象:
    python 语言编程思想更加符合我们人的逻辑思维,而不用再像 C 语言那样去理
    解计算机运行思维。并且无需考虑如何管理你的程序使用的内存一类的底层细
    节。更加注重我们的业务逻辑。
  7. 免费、开源:
    你可以自由的阅读它的源代码、对它做改动。python 希望由更加优秀的人来继
    续改进和创造 python。
  8. 可移植性
    由于它的开源本质,python 已经被移植在许多平台上(经过改动使它能够工作
    在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有 python
    程序无需修改就可以在下述任何平台上面运行。这些平台包括 Linux、Windows、
    FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、
    z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp
    Zaurus、Windows CE 甚至还有 PocketPC、Symbian 以及 Google 基于 linux 开发的
    Android 平台!
  9. 可扩展性
    如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你
    的部分程序用 C 或 C++编写,然后在你的 python 程序中使用它们。
  10. 丰富的库
    python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文
    档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、
    XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系
    统有关的操作。记住,只要安装了 python,所有这些功能都是可用的。这被称
    作 python 的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,
    如 wxpython、Twisted(是用 python 实现的基于事件驱动的网络引擎框架)和
    python 图像库等等。
    缺点:
  11. 运行速度慢
    python 的运行速度相比 C 语言确实慢很多,跟 JAVA 相比也要慢一些,但是在大
    多数情况下 python 已经完全可以满足你对程序速度的要求,除非你要写对速度
    要求极高的搜索引擎等,这种情况下,当然还是建议你用 C 去实现的。
  12. 中文资料缺乏
    好的 python 中文资料屈指可数
  13. 线程不能利用多核
    这 是 python 被 人 诟 病 最 多 的 一 个 缺 点 , GIL 即 全 局 解 释 器 锁 ( Global
    Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得
    任何时刻仅有一个线程在执行,python 的线程是操作系统的原生线程。在 Linux
    上为 pthread,在 Windows 上为 Win thread,完全由操作系统调度线程的执行。
    一个 python 解释器进程内有一条主线程,以及多条用户程序的执行线程。即使
    在多核 CPU 平台上,由于 GIL 的存在,所以禁止多线程的并行执行。关于这个问
    题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。 (三)应用场景
  14. web 应用开发
    众多大型网站均为 python 开发。
    豆瓣:公司几乎所有的业务均是通过 python 开发的
    知乎:国内最大的问答社区,通过 python 开发(Quora)
    春雨医生:国内知名的在线医疗网站是用 python 开发的
    还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等
    公司都在使用 python 完成各种各样的任务。
    国外的网站:
    谷歌:Google App Engine、code.Google.com、Google earth、谷歌爬虫、Google
    广告等项目都在大量使用 python 开发
    CIA:美国中情局网站就是用 python 开发的
    NASA:美国航天局(NASA)大量使用 python 进行数据分析和运算
    YouTube:世界上最大的视频网站 YouTube 就是 python 开发的
    Dropbox:美国最大的在线云存储网站,全部用 python 实现,每天网站处理 10
    亿个文件的上传和下载
    Instagram:美国最大的图片分享社交网站,每天超过 3 千万张照片被分享,全
    部用 python 开发
    Facebook:大量的基础库均通过 python 实现的
    Redhat:世界上最流行的 Linux 发新版本中的 yum 包管理工具就是用 python 开
    发的
  15. 科学计算、人工智能
    python 由于具有编写简单、改动少等特点。特别适合用在机器学习方向。并且
    提供了丰富的库。减少了学习人工智能的成本。
    NumPy,SciPy,Matplotlib 可以让 python 程序员编写科学计算程序。
  16. 服务器软件(网络软件)
    python 对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网
    络爬虫。第三方库 Twisted[ˈtwɪstɪd] 支持异步网络编程和多数标准的网络协议(包
    含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软
    件。
  17. 操作系统管理、服务器运维的自动化脚本
    在很多操作系统里,python 是标准的系统组件。 大多数 Linux 发行版以及
    NetBSD、OpenBSD 和 Mac OS X 都集成了 python,可以在终端下直接运行 python。
    有一些 Linux 发行版的安装器使用 python 语言编写,比如 Ubuntu 的 Ubiquity 安
    装器,Red Hat Linux 和 Fedora 的 Anaconda 安装器。Gentoo Linux 使用 python 来编
    写它的 Portage 包管理系统。python 标准库包含了多个调用操作系统功能的库。
    通过 pywin32 这个第三方软件 包,python 能够访问 Windows 的 COM 服务及其
    它 Windows API。使用 Ironpython,python 程序能够直接调用.Net Framework。一
    般说来,python 编写的系统管理脚本在可读性、性能、代码重用度、扩展性几
    方面都优于普通的 shell 脚本。
  18. 游戏
    很多游戏使用 C++编写图形显示等高性能模块,而使用 python 或者 Lua 编写游戏
    的逻辑、服务器。相较于 python,Lua 的功能更简单、体积更小;而 python 则
    支持更多的特性和数据类型。 (四)python 语言类型
    编程语言分为编译型和解释型语言,python 属于解释型语言。
    首先我们需要知道我们在电脑上写的内容保存到电脑上的时候在磁盘上保存的
    形式都是二进制 01010 这种形式来保存。当我们再次打开文件的时候,电脑会将
    二进制数据转换为我们可以看懂的内容,呈现到我们面前。同样我们的代码都是
    使用英文来编写的,当我们运行我们写的程序的时候,同样需要将我们写的代码
    翻译成二进制数据给电脑运行。因此我们需要一个翻译工具将我们写的代码(源
    码)翻译二进制文件。我们将这个翻译工具称之为编译器。
    我们根据编译器对源码的翻译方式不同,把编译器分成了两种类型一种类型是编
    译器,一种是解释器。
    使用编译器编译的语言我们叫做编译型语言,使用解释器解释的语言叫做解释型
    语言。
    编译型语言执行过程:使用 java 开发完一个只有 3 行代码的程序,然后将这三
    行代码统一交给编译器进行编译,编译成.class 文件,然后交给操作系统。
    当再次执行这个程序的时候,就可以直接拿刚才生成的.class 运行。就不需要再
    把源码翻译成.class 文件。因为翻译只做了一次,运行的时不要翻译,所以编译
    型语言的程序执行效率高。
    解释型语言执行过程:使用 python 开发了一个 3 行代码的源程序,当程序运行
    的时候一行一行的给解释器,解释器一行一行的进行解释。这样解释性语言每执
    行一次要翻译一次,效率表较低。
    二、python 解释器
    刚才我们已经了解到了 python 是一门解释性编程语言,我们需要下载 python 解
    释器。
    1.直接到官网 https://www.python.org/下载,安装就可以了。
    2.安装比较简单,点 exe 文件一直下一步就可以了(注意:安装的时候有个选择
    是否添加环境变量,这个选是,之后就不用添加环境变量了)如果没有,请添加
    环境变量。计算机属性 -->高级系统设置–>环境变量–>系统变量里的 path–>编辑
    添加安装 python 的路径(例如 E:\python;E:\python\script)
    注意:我们选择为 64 位安装包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值