本章是为没有任何程序设计基础的初学者编写的入门章节,也是为想成长为一位Python设计者的读者编写的开篇章节。在本章中,我们将简单介绍Python,并讨论它的特殊应用,而后介绍如何建立Python开发和运行环境。
本章学习大纲
·Python的特色
·程序设计语言简介
·算法概念
·流程图
·Python的应用
·建立Python开发环境
·基本输入与输出
·IPython命令窗口
·Spyder编辑器
·Python程序编写风格
对于未来的高素质人才,程序设计能力是他们必备的基础能力之一。基于这个理念,世界各国都非常重视培养新一代人才的程序设计能力,把具有程序设计能力作为衡量人才的指标之一。具有编程能力不再只是信息科学类专业人员的“专利”,而是将来所有人才都要具有的基本能力。让从自己院校毕业的学生拥有一定的编程能力,已是各个大专院校信息教育普及的主要方向之一,目前在全国范围已经有不少中小学开展了一定程度的程序设计课程。
与其他的传统程序设计语言相比,Python在物联网、数据挖掘与大数据分析以及人工智能领域的应用相当火红,已经达到了“举足轻重”的地位,因而也越来越受科技界的欢迎。
物联网(Internet of Things,IoT)是近年来信息产业中一个非常热门的话题,各种配备了传感器的物品(例如RFID、环境传感器、全球定位系统(GPS)等)与因特网结合起来,并通过网络技术让各种实体对象、自动化设备彼此沟通和交换信息。也就是通过网络把所有东西都连接在一起。
大数据(Big Data)由IBM公司于2010年提出,是指在一定时效(Velocity)内进行大量(Volume)、多样性(Variety)、低价值密度(Value)、真实性(Veracity)数据的获得、分析、处理、保存等操作,主要特性包含5个方面:Volume(大量)、Velocity(时效性)、Variety(多样性)、Value(低价值密度)、Veracity(真实性)。由于数据的来源有非常多的途径,大数据的格式也越来越复杂。
进入云计算(Cloud Computing)时代,可以这么说:没有最好的程序设计语言,只有是否适合的程序设计语言。在统计分析与数据挖掘领域有着举足轻重地位的Python,近年来人气不断飙升,并成为高级程序设计语言排行榜的常胜军,也可以说是现在最流行的机器学习(Machine Learning,ML)语言,不仅可用于执行基本的机器学习任务,而且在网络上可以找到大量的相关资源。
“云”其实就泛指“网络”,因为工程师在网络结构示意图中通常习惯用“云朵状”图来代表不同的网络。云计算是指将网络中的计算能力作为一种服务,只要用户可以通过网络登录远程服务器进行操作,就能使用这种计算资源。
机器学习是通过算法来分析数据,在大数据中找到规则,给予计算机大量的“训练数据(Training Data)”,可以发掘多数据元变动因素之间的关联性,进而自动学习并且做出预测,即充分利用大数据和算法来训练机器,机器再从中找出规律,学习如何将数据分类。
Python语言的优点是:面向对象程序设计(Object-Oriented Programming,OOP)、解释执行、跨平台等,加上丰富强大的程序包、模块与免费开放的源码,在各种领域的用户都可以找到符合自己需求的程序包或模块,涵盖网页设计、应用程序设计、游戏设计、自动控制、生物科技、大数据等领域,因此非常适合作为各个行业人员学习程序设计的第一门语言,目前在网络上Python拥有非常活跃的社区及拥戴者。如图1-1所示是TIOBE Software( https://www.tiobe.com/tiobe-index/ )在2018年9月公布的世界程序设计语言排行榜,Python的人气指标已升到第3名。
图1-1
面向对象程序设计的核心思想是,将存在于日常生活中随处可见的对象(object)概念应用于软件开发模式(software development model)中。也就是说,OOP让我们在进行程序设计时,采用更生活化、可读性更高的设计概念,所开发出来的程序也更容易扩充、修改及维护。