Python编程语言介绍

本文主要介绍Python编程语言的相关知识。

1 概述

Python是一种面向对象的、解释型计算机程序设计语言,由荷兰人“Guido van Rossum”于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。

Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进

Python具有丰富和强大的库。

Python常被昵称为胶水语言(glue language),因为它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起,常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分用更合适的语言改写,比如3D游戏中的图形渲染模块,对性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是,在使用扩展类库时,可能需要考虑平台问题,某些扩展类库可能不提供跨平台的实现。

2 语言风格

Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。

设计者在使用Python进行代码开发时,总的指导思想是:对于一个特定的问题,只要有一种最好的方法来解决就够了,这在由“Tim Peters”写的Python格言(称为“The Zen of Python”)里面表述为:There should be one -- and preferably only one -- obvious way to do it. Python的这个思想正好和Perl语言(另一种功能类似的高级动态语言)的中心思想“TMTOWTDI (There's More Than One Way To Do It)”完全相反。

Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译,其中很重要的一项就是Python的缩进规则。

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

3 设计定位

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

因此,Perl语言中“总是有多种方法来做同一件事”的理念,在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。

Python准则被称为Python格言,在Python解释器内运行“import this”可以获得完整的格言列表。

Python是完全面向对象的语言,函数、模块、数字、字符串都是对象,并且Python完全支持继承、重载、派生、多继承,这有益于增强源代码的复用性。另外,Python支持重载运算符和动态类型。

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

Python本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。

Python编译器本身也可以被集成到其它需要脚本语言的程序内,因此,很多人使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目中,例如Google Engine,先使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。即,在操控硬件的场合使用C++,在快速开发时候使用Python。

4 Python执行

Python在执行时,首先会将“.py”文件中的源代码编译成Python的字节码(byte code),然后再由Python虚拟机(Python Virtual Machine)来执行这些编译好的字节码,这种机制的基本思想跟Java和.NET是一致的。

不过,Python虚拟机与Java或.NET的虚拟机不同,Python的虚拟机是一种更高级的虚拟机,这里的“高级”并不是通常意义上的高级:不是说Python的虚拟机比Java或.NET的功能更强大,而是说与Java或.NET相比,Python虚拟机距离真实机器的距离更远,或者说,Python虚拟机是一种抽象层次更高的虚拟机。

基于C语言的Python编译出的字节码文件,通常是“.pyc”格式。

此外,Python还能够以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows,都可以在命令模式下直接运行Python交互环境,直接下达操作指令实现交互操作。

5 基本语法

5.1 缩进

Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制使程序员养成良好的编程习惯。

Python语言利用缩进表示语句块的开始和退出(即“Off-side”规则),而不同于其他语言使用花括号或者某种关键字。

增加缩进表示语句块的开始,而减少缩进则表示语句块的退出,缩进成为了语法的一部分。例如下列的Python语句:

if 100 == score:
    print("good.这条语句在if语句块之内")
print("这条语句在if语句块之外")

根据PEP的规定,必须使用4个空格来表示每级缩进(在实际编写中可以自定义空格数,但是要满足每级缩进间空格数相等)。虽然使用Tab字符和其它数目的空格也可以编译通过,但不符合编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的Python程序和某些有问题的程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

liitdar

赠人玫瑰,手有余香,君与吾共勉

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

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

打赏作者

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

抵扣说明:

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

余额充值