`

Python

阅读更多

[编辑] 发展历史

Python的创始人为Guido van Rossum。在1989年圣诞节期间的阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中 Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言 并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如CC++Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

[编辑] 作为编程语言的设计定位

虽然 Python 可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如 Zope、Mnet 及 BitTorrentGoogle 也广泛地使用它。 Python 的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单编程任务的语言,如 shell script、JavaScript 等只能处理简单任务的编程语言,并不能与 Python 相提并论。

此外,由于 Python 对于 C 和其他语言的良好支持,很多人还把 Python 作为一种“胶水语言”(glue language)使用。 使用 Python 将其他语言编写的程序进行集成和封装。 在 Google 内部的很多项目使用 C++ 编写性能要求极高的部分,然后用Python调用相应的模块。

[编辑] Hello World程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

#!/usr/bin/env python
print "Hello, world!"
  • Python 3000:
#!/usr/bin/env python
print("Hello, world!")

Python 也可以单步直译运行。运行 Python 解释器进入交互式命令行的环境,你可以在提示符号 >>> 旁输入 print "Hello, world!",按 Enter 键输出结果:

>>> print "Hello, world!"
Hello, world!
  • Python 3000:
>>> print("Hello, world!")
Hello, world!

[编辑] 语言特色

Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器,我们用的比较多的是C版本的Python,也就是使用C语言实现的Python解释器,除此之外还有使用Java实现的Jython和使用.NET实现的IronPython,这些实现可以使Python用户充分利用己有的Java.NET资源。

同时,Python支持几乎所有常用的操作系统,包括:WindowsDOSMacintoshLinuxFreeBSD。 及很多不常用的操作系统,包括AIX、AS/400 (OS/400)、BeOS、OS/2、OS/390与z/OS、Palm OS、PlayStation与PSP、Psion、QNX、RISC OS、Series 60、Sparc Solaris、VMS、VxWorks、Windows CE或Pocket PC、Sharp Zaurus、MorphOS等。

可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或 C++写成。而我们也可为现成的模块加上Python的界面。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。

因此Python具有非常庞大的程序库,通过它们可以快速完成绝大部分常用的任务,如:从某个URL中获取信息、正则表达式、获得某个文件或字符串MD5特征字符串、多线程XMLHTML的分析等。

Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Python资深开发者Tim Peters所作的Python格言(The Zen of Python)[1]里面表述为:

There should be one-- and preferably only one --obvious way to do it.

另外,在 Chris DiBona(Google 开源码网站负责人)和 Leo Laporte(Twit 网站创始人) 的访谈中,Guido van Rossum 也提出一个口号[2]

There is only one way to do it.(做一件事情只有一个方法。)

有意思的是,这正好和Perl 语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDIThere's More Than One Way To Do It.)完全相反,这似乎是人们常把Perl和Python互相比较的重要原因。

著名Python培训专家Mark Lutz则表示,Peters的话中最值得一提的是[3]

Explicit is better than implicit.(明言胜于暗示。)

这句话在Python用户社群中通常简写作EIBTIExplicit Is Better Than Implicit.)。Lutz认为这一特色性原则是Python和其他各种编程语言之间最重要的区别。

Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。

例如 if 语句:

if age < 21:
print "You cannot buy wine!\n"
print "But you can buy chewing gum.\n"
print "this is outside if\n"

一个和其他大多数语言(如C语言)的区别就是,一个语句块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语 言是用一对花括号{ }来明确的定出语句块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来, 曾经被认为是一种程序设计语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确 实使得程序更加清晰和美观。

另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。

[编辑] Python 3.0

Python 的 3.0 版本,在开发阶段被称为 Python 3000,或简称 Py3k[4]。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候就没有考虑向下兼容。许多针对早期 Python 版本设计的程序都无法在 Python 3.0 上正常运行。为了照顾现有程序,Python 2.6 作为一个过渡版本,基本使用了 Python 2.x 的语法和,同时考虑了向 Python 3.0 的迁移。基于早期 Python 版本而能正常运行于 Python 2.6 并无警告的程序可以通过一个 2 to 3 的转换工具无缝迁移到 Python 3.0[5]

[编辑] 主要变化

Python 3.0 的变化主要在以下几个方面[6]

部分函数和语句的改变[7]

最引人注意的改变是 print 语句没有了,取而代之的是 print 函数;

字符串和字节:

类似 Javastr类表示一个 Unicode 字符串,代替了早期版本的 unicode 类。而一堆字节则用类似 b"abc" 的语法创建,用 bytes 类表示;

其他变化:

详见参考文献[6]

[编辑] 各种实现

  • CPythonClassic Python,也就是原始的经典 Python 实现,需要区别于其他实现的时候才以 CPython 称呼;或解作 C 语言实现的 Python
  • Jython(原名 JPythonJava 语言实现的 Python,现已正式发布)
  • PyPy(使用 Python 语言写的 Python)
  • IronPython(面向 .NETECMA CLI 的 Python 实现)
  • 周蟒(支持繁简中文的 Python 语言)

[编辑] 集成开发环境

适用于 Python 的集成开发环境(IDE)软件,除了标准二进制发布包所附的 IDLE 之外,还有许多其他选择。其中有些软件设计有语法着色、语法检查、运行调试、自动补全、智能感知等便利功能。由于 Python 的跨平台出身,这些软件往往也具备各种操作系统的版本或一定的移植性。

专门为 Python 设计的IDE软件:

有相应插件的通用IDE软件(使用难度往往较大):

另外,诸如 EditPlusUltraEditPSPad 等通用的程序员文本编辑器软件也能对 Python 代码文本作出一定解释,但是否够得上集成开发环境的水平,尚有待评估。

[编辑] 著名应用

[编辑] 从◇◇◇语言到 Python

[编辑] 外部链接

[编辑] Python 3000 相关链接

分享到:
评论

相关推荐

    2023最新教程【樵夫教你学Python】Python全套教程 Python基础

    Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+文档2023最新教程【樵夫教你学Python】Python全套教程 Python基础python基础课代码+...

    python3.7-python3.8-python3.9-python3.10对应的dlib安装包.whl.zip

    python3.7_python3.8_python3.9_python3.10对应的dlib安装包.whl.zippython3.7_python3.8_python3.9_python3.10对应的dlib安装包.whl.zippython3.7_python3.8_python3.9_python3.10对应的dlib安装包.whl.zippython...

    Python入门-选择Python版本

    Python是一种广泛使用的高级编程语言,尤其在Web开发、数据分析、人工智能等领域有着广泛应用。对于初学者而言,选择合适的Python版本是入门的第一步。Python有两个主要的活跃版本:Python 2 和 Python 3。这两个...

    Python 根据用户输入编码批量生成EAN-13条形码 Python源码

    Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13...

    python实现按键精灵工具合集

    python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵工具合集python实现按键精灵...

    Python 禁止窗体显示最大化按钮及调整窗体大小 Python源码

    PythoPython 禁止窗体显示最大化按钮及调整窗体大小 Python源码Python 禁止窗体显示最大化按钮及调整窗体大小 Python源码n 禁止窗体显示最大化按钮及调整窗体大小 Python源码Python 禁止窗体显示最大化按钮及调整...

    Python 如何批量提取Word文档的页码(并计算总页码)Python源码

    Python 如何批量提取Word文档的页码(并计算总页码)Python源码Python 如何批量提取Word文档的页码(并计算总页码)Python源码Python 如何批量提取Word文档的页码(并计算总页码)Python源码Python 如何批量提取Word...

    Python 解决图片不能被一同打包到可执行文件中的问题 Python源码

    Python 解决图片不能被一同打包到可执行文件中的问题 Python源码Python 解决图片不能被一同打包到可执行文件中的问题 Python源码Python 解决图片不能被一同打包到可执行文件中的问题 Python源码Python 解决图片不能...

    超完整 Python基础入门知识教程 Python从入门到进阶知识大全 Python开发基础知识能力集全部课件 1885页

    Python基础入门知识教程 Python是一个功能强大且广泛应用的高级编程语言。了解Python的发展历史、优缺点、应用场景、数据类型转换、编写第一个Python程序、注释的引入、中文支持、输入变量、类型标示符、关键字、...

    source insight python Python.CLF 语言包

    source insight python Python.CLF 语言包 SourceInsight作如下配置: (1)选择Options &gt; Preferences,单击Languages选项; (2)单击import按钮,装载并导入Python.CLF; (3)这时可以看到,左栏语言列表多...

    使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip

    使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip使用Python调用OpenAI接口-OpenAI接口调用python库源码.zip使用Python调用OpenAI接口-OpenAI接口...

    java2python--java代码转python工具

    Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...

    Python使用OpenCV进行视频/图像背景去除,一个Python文件搞定,附测试视频!

    Python使用OpenCV进行视频/图像背景去除,一个Python文件搞定,附测试视频! Python使用OpenCV进行视频/图像背景去除,一个Python文件搞定,附测试视频! Python使用OpenCV进行视频/图像背景去除,一个Python文件...

    Python 八股文.pdf

    Python是一种高级编程语言,以其简洁明了的语法和丰富的标准库而受到广泛欢迎。"Python八股文"可能指的是对Python基础知识的一种系统性总结。在Python中,有以下几个关键概念值得深入探讨: 1. **内置电池...

    C++调用python,免安装python环境运行

    首先,要实现C++调用Python,通常会用到Python的`Python.h`头文件,它是Python的C API,允许C/C++代码与Python解释器进行交互。但是,这种常规方法要求目标系统已经安装了Python环境。为了解决这个问题,项目可能...

    python 3.10.5 Windows 64位安装包

    python 3.10.5 Windows 64位安装包。 Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 [4] Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库...

    Python聊天机器人,智能问答系统.zip

    Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python...

    python计算机二级题库(附带答案)

    python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python计算机二级题库(附带答案)python...

    python开发基于Django的投票系统源代码.zip

    python开发基于Django的投票系统源代码。python开发基于Django的投票系统源代码python开发基于Django的投票系统源代码python开发基于Django的投票系统源代码python开发基于Django的投票系统源代码python开发基于...

Global site tag (gtag.js) - Google Analytics