python初步

Python是一种面向对象的、解释型的计算机高级程序设计语言,由Guido van Rossum于1989年开始开发,并于1991年发布第一个公开发布第一个公开发行版。Python是纯粹的开源自由软件,其源代码和解释器均遵循GPL(GUN General Public License)协议。Python具有语法简介、易于学习、功能强大、可扩展性强、跨平台等诸多特点,逐渐成为最受欢迎的程序设计语言之一。

 本章重点

  1. Python的发展
  2. Python的特点
  3. Python 的运行方式
  4. Python 开发工具

1.1 认识Python

欢迎来到Python的世界。本节将从Python的发展、引用、特点和版本等内容开始,带领读者了解和认识Python。

1.1.1 Python发展

   1989年圣诞节,Guido在阿姆斯特丹开始准备开发一种新的程序设计语言。作为Monty Python喜剧团体的粉丝,Guido将这门新语言命名为Python。Python的灵感来自ABC语言------Guido参与开发的一种适用于非专业程序开发人员的教学语言。Python认为ABC语言有没、功能强大,ABC未获得成功主要是非开放造成的,所以,Guido一开始将Python主要目标之一定位在开放性。同时,Guido还想在Python中实现一些在ABC中闪现过但未曾实现的东西。可以说,Python起源于ABC,并收到了Modual-3语言的影响,同时结合了UNIX Shell和C语言的习惯。

经过多年的发展,Python已经成为最受欢迎的程序设计语言之一。2011年1月,TIOBE将Python评为编程语言排行榜2010年度语言。TIOBE网站地址为:http://www.tiobe.com/tiobe_index.图1-1显示截止2018年2月的TIOBE程序设计语言排行榜,Python在众多的程序设计语言中排在java、C、C++之后,处于第4位,其影响力可见一斑。

 

图1-1 TIOBE程序设计语言排行榜

详细了解Python的现状,请访问Python官方网站:http://Python.org

1.1.2 Python应用案例

目前,不少公司 Python开开发自己的产品.例如:

  1. 世界上最大的视频分享网站YouTube的视频分享服务大部分采用Python实现。
  2. 首个P2P文件分享软件BitTorrent也采用Python实现。
  3. 大型多人在线游戏EVE Online广泛使用了Python。
  4. Autodesk旗下的著名三维建模和动画软件Maya,为Python提供了API(Application Programming Interface,应用程序编程接口)。
  5. Intel、Cisco、HP、Seagate、Qualcomm和IBM等公司使用Python进行硬件测试。
  6. Pixar、Industrial Light & Magic等电影公司使用Python制作动画电影。
  7. JPMorgan Chase、UBS、GETCO、Citadel等公司使用Python做市场预测。
  8. NASA、Los Alamos、Fermilab、JPL等使用Python执行科学计算。
  9. iRobot使用Python开发了机器人真空吸尘器。
  10. ESRI使用Python为终端定制GIS地图产品。
  11. NSA应用Python实现加密和智能分析。
  12. IronPort使用Python实现电子邮件服务器产品。
  13. Google、Yahoo、搜狐邮箱、知乎、果壳等也广泛使用了Python。

  在Python官方网站的Python Success Stories(http://Python.org/about/success/)

1.1.3 Python的特点

1.Python是免费的开源自由软件

 Python具有下列显著特点。

 Python遵循GPL协议,也是免费的,不管是用于个人还是商业用途,开发人员都无须支付任何费用,也不勇担心版权问题。

 作为开源软件,程序员可以获得Python源代码,以研究其内部细节,并可加以修改使其针对目标更加适用。也可以将Python嵌入系统或随产品一起发布,甚至于销售Python的源代码,都没有任何限制。

2 Python是面向对象的语言

面向对(Object Oriented,OO)是现代高级程序设计语言的一个重要特种。多态、运算符重载、继承和多重继承等面向对象编程(Object Oriented Programming OOP)的主要特征也在Python的类模式中得到很好的支持。得益于Python简洁的语法和数据类型系统,Python中的OOP也变得极为简单,比其他语言容易。

OOP是Python的一个重要特征,初学者不必为此感到担心。Python同样支持传统的面向过程的编程模式,完全可以在具有一定的基础之后在深入学习Python的OOP。

 

3 Python具有良好的跨平台特征

Python是用ANSI C实现的。C语言因为跨平台和良好的额一致性成为经典的程序设计语言。这意味着Python也具有良好的跨平台特性,可在目前所有的主流平台上编译和运行。所以,在Windows下编程的Python程序,可以轻松在Lunix等其他系统中运行。

因为Python是开源的,可以轻松将其移植到各种不同平台,包括Lunix、Windows、FreeBSD、BeOS和iOS等平台。

4 Python功能强大

Python既属于脚本语言,也属于高级程序语言,所以,Python具有脚本语言(如Perl、Tcl和Scheme等)的简单、易用特点,也具有高级程序语言(如C、C++和Java等)的强大功能

Python具有一些强大的功能如下:

   动态数据类型:Python在代码运行过程中跟踪变量的数据类型,不需要在代码中声明变量的类型,也不要求在使用之前对变量进行类型的声明。

   自动内存管理:良好的内存管理机制以为这程序运行具有更高的性能。Python程序员无须关心内存的使用和管理,Python自动分配和回收内存。

大型程序支持:通过子模块、类和异常等工具,允许Python应用大于程序开发。

内置数据结构:Python提供常用数据结构支持。例如,列表、字段、字符串等都属于Python内置对象。同时,Python也实现了各种数据结构的标准操作,如合并、分片、排序和映射等。

内置库:Python提供丰富的标准库,从正则表达式匹配到网络等,使Python可以实现多种应用。

第三方工具集成:Python很容易集成第三方工具,通过各种扩展包将其应用到各种不同领域

5Python简单易学

Python的设计理念是“优雅”“明确”“简单”,提倡“用一种方法,最好只有一种方法来做一件事”,所以,Python语言语法简洁、代码易读。在国外一些知名大学,开始采用Python作为程序设计课程的编程语言。例如,卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论均使用Python语言讲授。

Python不强调数据类型,变量在使用之前无须定义其数据类型,同一个变量可存储不同类型的数据。

 

                  图1-2 Python开发人员的设计理念

1.1.4 Python的版本

Phthon发展到现在,经历了多个版本,如表 1-1所示。

表1-1 Python版本历史

版本号

年份

拥有者

GPL兼容

0.9.0~1.2

1991-1995

CWI

1.3~1.5.2

1995-1999

CNRI

1.6

2000

CNRI

2.0

2000

BeOpen.com

1.6.1

2001

CNRI

2.1

2001

PSF

2.0.1

2001

PSF

2.1.1

2001

PSF

2.1.2

2002

PSF

2.1.3

2002

PSF

2.2~2.7

2001-2015

PSF

3.X

2008至今

PSF

作为一个开源软件,Python拥有一个参与者众多的开发社区,它保持的不断更新和改进。Python的开发者通过一个在线的源代码控制系统协同工作,所有对Python的修改必须遵循PEP(Python Enhancement Proposals)协议,并通过Python扩展回归测试系统的测试。目前,由一个非正式的组织PSF(Python Software Foundation,Python软件基金)负责组织会议并处理Python的知识产权问题。

1.1.5 Python 3.x 与2.x区别

 1.Python 3.x默认使用UTF-8编码

   Python 3.x 源代码中的字符默认使用UTF-8编码,可以很好地支持中文或其他非英文字符。例如,在Python 3.x 中可以使用汉字作为变量名。

>>>长度=100

>>>print(长度)

100

   在Python2.x中不能使用汉字作为变量名,否则会出错。例如:

>>>速度=100

   File”<stdin>”,line 1

速度=100

^

 SyntaxError:invalid syntax

 

 2. print()函数替代了print语句  

在Python3.x 中,调用print()函数来输出数据。例如:

>>>x=100

>>>print(10,’abc’,x)

10  abc 100

在Python 2.x中则使用print语句。例如:

>>>x = 100

>>>print 10,’abc’,x

10 abc 100

>>>print(10,’abc’,x)

(10,’abc’,100)

3.完全面向对象

在Python2.x中的各种数据类型,在3.x中全面升级为类(class)。例如,在Python2.x中输出数据类型结果如下。

 

>>> int,float,str

(<class 'int'>, <class 'float'>, <class 'str'>)

4.用视图和迭代器替换了列表

 下面的常用方法或函数在Python2.x中返回列表,在3.x中有很多变化。

  1. 3.x中,字典的keys()、items()和values()方法用返回视图代替了列表,不再支持2.x中的iterkeys()、iteritems()和itervalues()。
  2. 在3.x中,map()、filter()和zip()函数用返回迭代器替代了列表。

5.比较运算中的改变

  1. 比较运算的主要改变如下。
  2. 用!=替代了<>。
  3. 比较运算<=、<=、>=、和>在无法比较两个数据大小顺序时,会产生TypeError异常。
  4. 在Python2.x中,1<”、0>None、len<=len等运算符返回False,而在3.x中则成圣了TypeError异常。
  5. 在==和!=中,不兼容类型的数据视为不相等.
  6. 6. 整数类型的改变
  7. 整数类型的主要改变如下。
      1. 取消了long类型,整数类型只有int一种。不再支持用后缀l或L表示长整形。
      2. 在Python3.x中,/(除法)运算符返回浮点数(float类型)。2.x中两个整数的/运算符返回整数(截断了小数部分)。
      3. 整数不再限制大小,删除sys模块中的maxint(最大整数)常量。
      4. 不再支持以数字0开头的八进制常量(如012),二改成用前缀”Oo”表示(如Oo12)。

7 字符串改变

 在Python2.x中,字符串中的字符默认为单字节(8位),字符串的类型可分为str和unicode两种。带前缀”u”或者”U”的字符串为unicode类型,其他的字符(包括带前缀”b” ”B” “r”或”R”的字符串)为str类型。所有的字符串在输出时会将包含的字符直接输出。

例如:

>>>print type(‘\\abc’),type(b’abc’),type(r’\\abc’),type(u’abc’)

<type ‘str’><type ‘str’><type ‘str’><type ‘unicode’>

>>>print ‘\\abc’,b’abc’,r’\\abc’,u’abc’

\abc abc \\abc abc

在Python3.x中,字符默认为unicode字符,即双字节符。字符串的数据类型分为str和bytes两种。仍可使用字符串前缀”u”或者”U”,但会被忽略。

在Python3.x中,字符串前缀”b”或”B” 表示二进制字符串,其类型为bytes。例如:

>>> print(type('\\abc'),type(b'abc'),type(r'\\abc'),type(u'abc'))

<class 'str'> <class 'bytes'> <class 'str'> <class 'str'>

>>> print('\\abc',b'abc',r'\\abc',u'abc')

\abc b'abc' \\abc abc

8.取消了file数据类型

Python3.x 取消了2.x中的file数据类型。使用open()函数打开文件时,返回的是_io.TextIOWrapper类的实力对象。例如:

       

>>>f=open(‘d:/text.txt’,’w’)

>>>type(f)

<class ‘_io.TextIOWrapper’>

>>>f=open(‘d:/test.txt’,’w’)

>>>type(f)

<type ‘file’>

9. 异常处理

在Python3.x中,异常处理的改变主要如下。

  1. 所有异常都从BaseException继承,并删除了StandardError异常。
  2. 取消了异常类的序列行为和.message属性。
  3. 用raise Exception(args)代替raise Exception,args语法。
  4. 捕获异常的语法改变,引入了as关键字。

在Python2.x中,用下面的代码捕获和处理异常。

>>> try:

…    raise TypeError,’类型错误’

… except TypeError,err:

…      print err.message

类型错误

在Python3.x中,用下面的代码捕获和处理异常。

>>>try:

…     raise TypeError(‘类型错误’)

… except TypeError as err:

…    print(err)

类型错误

10.其他主要语法错误改变

其他主要的语法改变如下。

  1. 加入了关键字”as”和“with”。
  2. 增加了常量”True” “Flase” 和”None”。
  3. 加入nonlocal语句。使用nonlocal x 声明x为函数外部的变量。
  4. 删除了raw_input(),用input()代替。
  5. 去除元祖参数解包。不能像def(a,(b,c)):pass这样定义函数了。
  6. 增加了二进制字面量,如’0b110110110’。bin()函数可返回整数的二进制字符串。
  7. 扩展了可迭代解包。在Python3.x里,”a,b *x=seq”和”X,a=seq”都是合法的,只要求两点”x”是list。
  8. 对象和“seq”是可迭代的。
  9. 面向对象引入了抽象基类。
  10. 类的迭代器方法next()改名为_next_(),并增加内置函数next(),用以调用迭代器的_next_()方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

teayear

读后有收获可以获取更多资源

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

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

打赏作者

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

抵扣说明:

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

余额充值