技术资讯

软件开发:Python从菜鸟到高手学习:初识python

TIME:2018-08-30

1 Python简介

1.1 什么是Python

Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版发行于1991年。目前Python的最新发行版是Python3.6。

Python是纯粹的自由软件,源代码和解释器都遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

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

尽管Python源代码文件(.py)可以直接使用python命令执行,但实际上Python并不是直接解释Python源代码,而是先将Python源代码编译生成Python Byte Code(Python字节码,字节码文件的扩展名一般是.pyc),然后再由Python Virtual Machine(Python虚拟机,可以简称为PVM)来执行Python Byte Code。也就是说,这里说Python是一种解释型语言,指的是解释Python Byte Code,而不是Python源代码。这种机制的基本思想跟Java和.NET是一致的。

尽管Python也有自己的虚拟机,但Python的虚拟机与Java或.NET的虚拟机不同的是,Python的虚拟机是一种更高级的虚拟机。这里的高级并不是通常意义上的高级,不是说Python的虚拟机比Java或.NET的功能更强大,而是说与Java 或.NET相比,Python的虚拟机距离真实机器的距离更远。或者可以这么说,Python的虚拟机是一种抽象层次更高的虚拟机。Python语言程序代码的编译和运行过程如下图所示。
image

1.2 Python的应用领域

Python是一种跨平台编程语言,理论上,Python可以运行在任何操作系统平台上。目前最常用的操作系统平台是Windows、Mac OS X和Linux。毫无疑问,这3个平台都会成为Python的主战场。

Python的简单易学、众多第三方程序库,以及运行速度快等特性让Python的应用领域异常广泛。Python的应用领域主要有以下几个方面。

  • Linux/Unix运维
  • 命令行程序开发
  • GUI程序开发(PyQt 、Kivy等)
  • Web程序开发(Django等框架)
  • 移动App开发(PyQt 、Kivy等)
  • 服务端程序开发(基于Socket等协议)
  • 网络爬虫(为搜索引擎、深度学习等领域提供数据源)
  • 数据分析
  • 深度学习
  • 科学计算

    尽管这里没有列出Python的所有应用领域,但光这些列出的领域,就已经包含了绝大多数开发场景。用过Mac OS X或Linux的读者会发现,在这两个操作系统中,已经内置了Python解释器,也就是说,Python程序可以在Mac OS X和Linux上直接运行。所以很多运维工程师习惯使用Python来完成很多自动化操作。而且Python在操作网络、文本方面尤为突出。Google搜索引擎的第一个版本就是用Python写的。现在超级火热的深度学习也离不开Python,而且Python已经成为了深度学习的第一语言。因此,从各个角度来看,无论是学生、程序员,还是数据分析师,或是科学家,都离不开Python。Python俨然已经成为了编程语言领域的世界语。

    ### 1.3 如何学好Python

    如何学好Python语言,是所有初学者需要共同面对的问题,其实每种编程语言的学习方法都大同小异。下面是给初学者的几点建议。

  • 大体了解一下Python是一种怎样的编程语言,以及主要的应用领域。说白了,就是要了解Python能做什么,擅长做什么。对Python语言有一个宏观的认识。
  • 搭建开发环境,不管三七二十一,先弄出一个Hello World再说(可以复制现有的代码)。这样会给自己带来继续学习下去的信心。我们可以设想,学了一个星期,如何连一行代码都写不出来,继续学下去的兴趣还会剩多少呢?
  • 不要深究设计模式,这些东西是给那些有多年经验的程序员准备的,而且设计模式也不是用来学的,更不是用来记的,是依靠自己的多年经验和实践得出来的。这就像学英语,只管说就好了,管他什么语法,说多了,英语自然就纯正了。所以在一开始写程序时,只管写就好了,让设计模式见鬼去吧!
  • 模仿书中的例子代码,一定要自己亲手写代码,当然,一开始为了看运行结果,可以将书中的例子直接复制过来,但一定要完全自己写一遍,代码可以与书中的例子不同,只要实现同样的功能即可。
  • 在编写代码的过程中,不需要对Python语言的语法死记硬背,如果某些语法实在记不住,就把这些语法写在卡片上,或干脆放到有道云笔记上,以便随时查看,写多了自然就记住了。
  • 初学者不需要大量阅读Python的书籍,也不需要在网上查阅过多的技术资料,因为在自己的功力还没有达到一定火候时,摄入太多的信息会分散自己的精力,可能会适得其反。用一句武林中的话说就是:走火入魔。因此,对于初学者来说, 应充分利用本书给出的代码多做练习,当学会了本书给出的各种知识和技巧后,就可以随心所欲地摄取任何自己想获得的知识了。
  • 读者应充分利用随书赠送的Python视频课程,这套视频课程是与本书同步的。书与视频的差别就是书只能给出一个结果,而视频不仅可以给出结果,还可以详细演示操作过程,这对于初学者尤其重要。
  • 在模仿书中例子编写代码的过程中,可能对有些代码没有理解透彻,这并不要紧,读者应仔细阅读本书的相关内容,以及利用随书赠送的Python视频课程反复观看,以便领悟其中的奥秘。如果实在领悟不了,也可以到极客起源IT问答社区(https://geekori.com )去提问,会有很多人回答你提出的问题。
  • 本书配有大量练习题,读者可以通过这些练习题更好地掌握书和视频中的知识点,而且这些练习题不是生硬地给出,而是通过“过关斩将”、“测能力”等形式给出(这些功能需要依托欧瑞科技旗下“极客题库”小程序实现)。读者可以通过这些功能以闯关的方式完成自己的学习任务,并对自己的知识点掌握情况了如指掌。
  • 经常总结是一个好习惯,这个习惯对于程序员来说尤其重要。读者可以经常把自己的学习心得,以及经常需要查阅的内容发布到博客(如https://geekori.com )上,这样不仅可以提高自己的技术能力,还可以提高自己的语言表达能力。
  • 经常回答同行提出的技术问题也是一种提高技术能力的方式,而且更有效。如果你没有能力回答任何技术问题,或只能回答不到10%的技术问题,那么你还是个小白。如果能回答超过30%的技术问题,那么说明你已经至少达到了程序员的中级水平,如果这个比例是50%,那么恭喜,你已经成为该领域的高手了。如果提高到80%,会毫无悬念地成为该领域的专家。另外,欧瑞科技旗下的极客起源IT问答社区(https://geekori.com )包含了李宁老师大量学员和读者提出的各种问题,各位读者也可以试试自己到底属于哪个层次。另外,在https://geekori.com 中提问、回答问题以及撰写博客,都会获得可观的积分,可以换取更多的学习资源。
  • 大量阅读源代码。如果前面的方法读者做的都很好,那么相信读者的技术水平已经有了一个质的飞跃,剩下来的工作就是更进一步地提高自己的技术能力。阅读各种开源项目的源代码是一个非常好的方式。另外,要注意,阅读源代码不是目的,目的是要理解这些源代码背后的原理,当然,最终的目的是自己可以实现一个类似的功能。读者可以到https://github.com 获取各种类型的Python源代码。

2 搭建Python开发环境

### 2.1 安装官方的Python运行环境

不管用什么工具开发Python程序,都必须安装Python的运行环境。由于Python是跨平台的,所以在安装之前,先要确定在哪一个操作系统平台上安装,目前最常用的是Windows、Mac OS X和Linux三大平台。由于目前使用Windows的人数最多,所以本书主要以Windows为主介绍Python运行环境的搭建与程序的开发。

读者可以直接到Python的官网下载相应操作系统平台的Python安装包。

上一篇

APP开发:iOS 开发之 GCD 不同场景使用

下一篇

时讯软件: 编程大牛 Bruce Eckel 对新程序员的忠告