购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 Python入门

在学习Python之前,部分读者可能已经学习过一些其他编程语言,如C、C++和Java等等。相比这些语言,Python更加易于学习且应用更广。本节将介绍Python语言的定义、Python语言的发展与特点及Python与人工智能的关系。

1.1.1 Python语言的定义

Python是一种简单易学、功能强大的计算机高级程序设计语言。它具有高效的高级数据结构和简单有效的面向对象编程方法。Python优雅的语法和动态类型及其解释特性,使它成为大多数平台上许多领域里的脚本编写和快速应用程序开发的理想语言。Guido van Rossum创建了Python语言并负责Python的开发进程,他因此被计算机历史博物馆授予会员奖(计算机历史博物馆从1987年起每年颁发会员奖,授予其创意改变世界和影响今天所有人类的人)。Guido创造的Python语言自1991年发布以来,已演变为程序员们强大、灵活且易于学习的“瑞士军刀”,被广泛应用于众多的领域。

1.1.2 Python语言的发展与特点

本书编著时,所使用的Python版本为3.7.2。Python的许多优良特性使其备受程序员的喜爱。在本小节将详细介绍Python的历史发展过程及主要特点。

1.Python语言的发展

Python是ABC编程语言的继承和改进,而ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是其非开放性造成的。Guido决心在Python中避免这一错误的同时,还想实现在ABC中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展而来的,它主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响,并且结合了Unix shell和C的习惯。

Python版本发布进程如下。

(1)Python 1.4~1.6,文档发布于1996年10月25日至2000年。

(2)Python 2.0~2.7.15,文档发布于2000~2018年。

(3)Python 3.0~3.7.2,文档发布于2008~2018年。

如果读者是一名编程初学者,或者以前只接触过其他的编程语言,在开始学习Python的时候都会遇到一个让人头疼的问题:版本问题!是学习Python 2,还是学习Python 3?

Python有两个主要的版本,Python 2和Python 3,其中Python 3是不向下兼容的,但是绝大多数组件和扩展都是基于Python 2的。相较而言,Python 3有很大改进,比Python 2更容易理解、更加合理。

综上,本书推荐直接学习Python 3,理由有以下3点。

(1)Python 3才是Python的未来。

(2)Python官方建议直接学习Python 3。

(3)官方宣布Python 2只维护到2020年,从2019年1月1日开始,任何新的功能版本都只支持Python 3。

2.Python语言的特点

Python之所以在编程领域备受喜爱,是因为它有以下特点。

(1)简单易学。

Python是一种极简的编程语言,可读性好。阅读Python程序的感觉就像阅读英文句子,对于初学者来说非常易于学习。因此,Python被认为是当今适合中学和高校学生作为编程入门的程序设计语言,新一代的程序设计者完全可以将Python作为编程入门的第一门语言。

(2)易于维护。

由于Python程序可读性好,易于理解与学习,因此维护人员阅读并理解基础代码所需的时间也很少,维护起来非常方便。

(3)Python是开源的。

Python是开源的,其源代码可以免费获得。用户可以修改源代码以满足自己的需要,并且在实际应用开发中可以同时使用原始的代码和修改过的代码。

(4)Python是一种高级语言。

在编写Python程序时,用户不用管理底层的一些细节,如内存管理、CPU计时和进程调度等。所有这些任务都由Python解释器处理,用户只需直接编写这些易于理解的类似英语句子的程序代码。

(5)可移植性。

Python解释器已经被移植到许多OS平台上,Python代码也具有可移植性。如果用户足够仔细地避免使用与平台相关的代码,任何Python代码都不需要太多修改就能在支持的平台上运行。

(6)可解释性。

Python是一门解释性语言。用其他诸如C、C++或Java高级语言编写的程序,首先是被编译转换为一种中间格式,当运行这个程序的时候,链接器再把这种中间格式文件加载到目标内存中,因此C、C++和Java都有专用的编译器和链接器。与此不同,Python编写的程序不需要经过编译和链接到合适的库,而是直接从原始代码开始执行。因此Python代码可以方便地移植到不同的计算机设备中,只要必备的库在目标设备中成功安装就能保证程序的正常运行。

(7)面向对象。

Python既支持面向过程编程,也支持面向对象的编程方式。当面向对象编程时,程序是围绕着结合数据与相关功能的对象编写的。Python是一种简单、功能强大的面向对象的编程语言。

(8)可扩展性。

在Python程序中,用户可以调用C和C++的例程。如果希望程序核心功能块运行得更快,则可以用C和C++编写这部分代码,并在Python中调用和运行(通常C/C++程序运行速度较Python更快)。

(9)丰富的库资源。

Python具有大量的标准库,这些库也预先与Python一起被安装。这些标准库具有现代编程语言的必要特性。它们提供了数据库、单元测试、正则表达式、多线程、网络编程、计算机图形学、图像处理、GUI和其他实用工具。除了标准库,Python还具有许多并日益增长的第三方库,这些库都能够在Python包索引中找到。

(10)内存管理。

在汇编语言和诸如C、C++等编程语言中,程序设计者除了要完成程序功能设计,还要负责内存管理工作,这额外增加了工作量。在Python中,Python解释器负责内存管理任务。因此程序设计者可以避开内存管理工作,从而专注于处理当前任务。

1.1.3 Python与人工智能的关系

人工智能(Artificial Intelligence, AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。用来研究人工智能的主要物质基础及能够实现人工智能技术平台的机器就是计算机,人工智能的发展历史是和计算机科学技术的发展史联系在一起的。除了计算机科学以外,人工智能还涉及信息论、控制论、自动化、仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等。人工智能学科研究的主要内容包括知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。人工智能在过去几年中进展迅速:无事故驾驶超过480000千米并在美国三个州合法行驶,迎来了自动驾驶的一个里程碑;IBM Waston击败了Jeopardy两届冠军;统计学习技术从对消费者兴趣到以万亿记的图像的复杂数据集进行模式识别。这些发展必然提高了科学家和巨匠们对人工智能的兴趣,这也使得开发者们了解创建人工智能应用的真实本质。而人工智能程序可以使用大部分的编程语言实现,最常见的有Lisp、Prolog、C/C++、Java和Python。

在人工智能应用方面,Python相比其他编程语言更具优势。

(1)Python与平台无关,并且简单易学。

(2)Python具有丰富而强大的AI库,能够将其他语言制作的各种模块很轻松地联结在一起。

(3)Python的设计非常好,快速、坚固、可移植和可扩展。这些对于人工智能应用来说都是非常重要的因素。

(4)Python对于科学用途的广泛编程任务都很有用,无论是小的shell脚本还是整个网站应用。

(5)Python是开源的,可以得到相同的社区支持。

根据数据平台Kaggle发布的2017年机器学习及数据科学调查报告,在工具语言使用方面,Python是数据科学家和人工智能从业者使用最多的语言,如图1-1所示。

图1-1 数据科学家和人工智能从业者使用语言的排行榜

IEEE综览(IEEE Spectrum)发布的2018年最受欢迎编程语言列表中,Python同样位列第一,如图1-2所示。

图1-2 IEEE Spectrum发布的2018年最受欢迎的前10种编程语言 FhKlL4PflCzTRQx0ukMMQlyMo0VWaULsG2z9LVzDrVvVHALiP+hD4jYHIwQsG2OP

点击中间区域
呼出菜单
上一章
目录
下一章
×