第一节 遇见Pyhton
大家好,从今天开始,我们一起学习:Python入门
开始之前,有关学习方法有3点小建议:
1、请各位每天拿出30分钟时间,学习1节课程。任何知识技能的学习都需要连续的重复,才能巩固学习的效果。
2、按照课程计划,我们就会学写Python代码了。无论代码多简单,或者多复杂,都请大家跟着我一起写,这样你才能学的更快、更好!
3、成为编程高手的首要秘诀就是:努力写更多的代码!
大家一起加油!
下面我们正式开始学习...
1、官方对 Python 的介绍
- 它是一款易于学习且功能强大的编程语言。
- 具有丰富和高效率的数据结构。
- 能够简单有效地实现面向对象的编程。
- 简洁的语法和动态输入的特性。
- 拥有解释性语言的本质。
市场对Python公认的评价是:
Python 是那种极少数能同时具有 简单 与 功能强大 的编程语言。它能让你专注于如何解决问题,而不必拘泥于代码的语法和结构。
PS:Python因此成为能在多种领域与绝大多数平台进行脚本编写与快速开发的理想语言。
2、学 Python 有什么用?
谈到Python的用处,那就多了!神奇的是,除了常规计算机语言都擅长的领域,它还是当下大数据、机器学习、人工智能等等火热的IT技术,所热捧的的计算机语言。
- 网络爬虫:搜索引擎、基于网络的数据采集
- WEB应用:网站、电商、ERP、博客、社交软件 ...
- 数据分析:大数据分析
- 机器学习:算法模型、监督学习与无监督学习等
- 人工智能:基于数据分析和机器学习基础上的人工智能
- 其他应用:在你能想到的几乎所有计算机应用领域,Python都有用武之地
3、为什么要选择Python
这是个好问题。
在可预见的未来,计算机应用技术,都将是推动人类社会进步的巨大动力。人类在经历了农耕时代、工业化时代以后,乘上了信息化时代的高速列车,正在快速地向人工智能时代挺进。是什么东西能让我们紧紧的跟上这个时代的步伐呢?
毫无疑问,计算机技术!
而Python这门简单又强大的语言,恰逢其时地出现在我们的面前,而且更神奇的是它的每一个强项都正好符合时代的需要。
如果你是零基础,我们强烈推荐Python成为你的第一语言。如果你已经拥有计算机软件的基础,Python也将助你成就未来更加美好的人生。
4、Python诞生的故事
这里有两个版本,你可以选择相信其中一个,对于python的学习和应用不会有任何影响。有时候,传说还可能带给你神奇的力量。
5、关于吉多
Guido von Rossum 吉多·范·罗苏姆
Guido von Rossum(吉多),荷兰人。
1982年,从阿姆斯特丹大学获得了数学和计算机硕士学位。
1989年,创立Python语言。那时,他还在荷兰的CWI做研究员。
1991年初,Python发布了第一个公开发行版。
1995年,移居到美国。
2002年,在比利时布鲁塞尔举办的自由及开源软件开发者欧洲会议上,获得了自由软件基金会颁发的2001年自由软件进步奖。
2003年5月,获得了荷兰 UNIX用户小组奖。
2006年,被美国计算机协会(ACM)认定为著名工程师。
2005年12月,加入Google。用Python语言为Google写了面向网页的代码浏览工具。
2012年12月7日,加入Dropbox公司。
6、Python语言的特点
以下内容,对于初学者,我们只需要稍微了解一下即可,Python语言的特性,我们后面在实际应用中会有更深刻的体会。
(1)简单
Python 是一门简单、简约的语言。阅读一份优秀的 Python 程序代码就如同在阅读自然语言的文章一样,尽管它的语法要求也十分严格!
Python 这种伪代码式的特质,正是它的一大优势。它能够让你专注于解决问题的方案,而不是语言本身。
PS:伪代码通常是指程序员在研究或讨论问题时,为了提高效率而书写的一种语法并不严谨的代码,但大家都能够理解代码想表达的意思。
(2)易于学习
正如你接下来将会看到的,Python 是一门非常容易入门的语言。它有一套极其简单又严谨的语法体系。
(3)自由且开放
Python 是 FLOSS 社区的成员之一。你因此可以自由地分发Python软件的拷贝,阅读它的源代码,并对其作出改动,或是将它的一部分运用于一款新的自由软件之中。
PS:FLOSS 是一种自由/开放源代码的软件社区,它基于可以分享知识的社区理念而创建。这正是 Python 为何能如此优秀的一大原因,它由一群希望看到 Python 能变得更好的社区成员所创造,并持续地得到改进。
(4)高级语言
当你在用 Python 编写程序时,你不必考虑诸如你的程序应当如何使用内存等计算机处理数据的底层细节,事实上,这是高级计算机语言的一个共同特点。
(5)跨平台性
由于开放源码的特性,Python 已被移植到其它诸多平台,如下列表。
GNU/Linux、Windows、FreeBSD、Macintosh、 Solaris、 OS/2、 Amiga、 AROS、 AS/400、 BeOS、 OS/390、 z/OS、 Palm OS、 QNX、 VMS、 Psion、 Acorn RISC OS、 VxWorks、 PlayStation、 Sharp Zaurus、 Windows CE 以及 PocketPC
实际上,如果你注意避开一些系统依赖型的特性,你的 Python 程序甚至可以不做任何改动在其中任何一个平台上工作。
PS:如果你愿意,你可以在以上任何一个 平台上运行 Python!你甚至可以通过某一类的平台来制作可以在你的电脑或者 iPhone、iPad,亦或安卓手机上运行的游戏。
(6)解释性
我们在使用 C 或 C 等语言编程时,需要将源代码通过编译器,将它们转换成电脑所使用的语言(如二进制编码),以此显著提升代码的运行速度。因此,这样的编程语言被称之为编译型语言。
但是,Python 语言编程时,写完代码,即可直接运行。Python代码的运行是依赖于Python内部有个解释器,逐行运行,逐行解释。因此,Python是解释型语言。
实际上,这让 Python 使用更方便。因为,你无需考虑有关编译的问题,因此程序更加便于携带,易于迁移,你只需要将 Python 程序拷贝到另一台电脑便可让它立即开始工作!
PS:事实上,在程序内部,Python 会将源代码转换为字节码的中间形式,然后,再转换成你的电脑所使用的语言,并运行它,执行效率依然很高。
(7)面向对象
Python 同时支持 面向过程 与 面向对象 编程。
在面向过程的编模式中,程序是由仅仅带有可重用特性的子程序与函数所构建起来的。在面向对象的编程模式中,程序是由结合了数据与功能的对象所构建起来的。
与 C 或 Java 这些大型语言相比,Python 具有其特别的、功能强大又简单的方式来实现面向对象的编程。(PS:这一点,非常值得我们关注,在高渡的Python Web开发课程中,我们就能窥见一斑)
(8)可扩展性
如果你需要代码的某一重要部分能够快速地运行,或希望算法的某些部分不被公开,你可以在 C 或 C 语言中编写这些程序,然后再将其运用于你的 Python 程序中。
PS:事实上,在知识产权意识还不是特别强烈的场景里,它是一个不错的解决方案。
(9)可嵌入性
你可以在你的 C 或 C 程序中嵌入 Python,从而向你的程序用户提供脚本功能。
(10)丰富的库
Python有一个叫标准库的东西,规模非常庞大。它能够帮助你完成很多事情,包括:正则表达式、文档生成、单元测试、多线程、数据库、网页浏览器、CGI、FTP、邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面),以及其它系统依赖型的活动。
只需记住,你的电脑只要安装了Python,这些功能便随时可用。它们的存在被称作 Python 自备电池(Batteries Included) 。
PS:除了标准库以外,你还可以在 Python 库索引(Python Package Index) 中发掘许多其它高质量的库。
7、版本问题
Python在国内被高度关注,应该是最近1-2年的事情。但Python诞生和流行的时间可以一直追溯到20多年前,比Java和Asp.Net都更早。并且,由于他的开源特性,它所积累的资源非常丰富。Python语言本身的版本迭代也很多。
但是,市场上目前主要流行的有两个版本,Python 2 和 Python 3。
通常我们说的Python 3,是指 Python 3.0 以上的版本,我们制作这个课程的时候,在官方下载的,是Python 3.7.0版。而 Python 2 通常是指Python 2.7版。它与Python 3 在语法上的确存在一些明显的差异。
虽然Python 2 的程序在更多的应用扩展中会兼容的更好一些,但是,即便如此,我还是强烈建议,应该选择使用 Python 3 的版本。
我们课程的代码,将以 Python 3 的语法为准。
当然,一旦你学习并正确理解了其中任何一个版本的 Python,你就可以很容易地理解其他的版本,并能快速学习如何使用。
小结
Python 的确让人着迷!它真的是一门令人激动且功能强大的语言。它的创造,恰当地选择了性能与功能的平衡,让 Python 程序的编写变得简单又充满乐趣。
这里要特别提醒大家:不要害怕写代码,其实写代码本身就是一种乐趣,那是一种能创造一个世界的乐趣。
当然,任何事情要想取得非凡的成就,并不能完全依赖于乐趣。写代码也会有审美疲劳的时候。遇上这样的时候,我们该怎么办?
曾经有一个牛人说过一个神奇的秘诀:要么将程序写足够的简单,让它看起来明显没有什么问题;要么,将程序写得足够的复杂,让它明显看不出什么问题。
哈哈,不要误会,不要误会!他的意思是:bug其实是不可避免的,无论你是入门者,还是江湖高人,我们都有共同的烦恼,但这个并不重要。