Python编程无师自通.docx
《Python编程无师自通.docx》由会员分享,可在线阅读,更多相关《Python编程无师自通.docx(191页珍藏版)》请在课桌文档上搜索。
1、Pytholl编程无师自通1 .第1章概述2 .第2章起步3 .第3章编程概论4 .第4章函数5 .第5章容器6 .第6章字符串操作7 .第7章循环8 .第8章模块9 .第9章文件10 .第10章综合练习11 .第11章练习12 .第二部分面对对象编程简介13 .第12章编程范式14 .第13章面向对象编程的四大支柱15 .第14章深入面向对象编程16 .第15章综合练习17 .第三部分编程工具简介18 .第16章BaSh19 .第17章正则表达式20 .第18章包管理器21 .第19章版本控制22 .第20章融会贯通23 .第四部分计算机科学简介24 .第21章数据结构25 .第22章算法2
2、6 .第五部分找到工作27 .第23章最佳编程实践28 .第24章第一份编程工作29 .第25章团队协作30 .第26章更多学习资料31 .第27章下一步第1章概述“大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣的事儿。”林纳斯托瓦兹(LinusTorvalds)我毕业于克莱门森大学政治学专业。我曾考虑过是否选择学习计算机科学专业,还在大一那年报名参加了“编程概论”课程,不过很快就退出了。实在是太难了。毕业后我一直住在硅谷,我发现我需要学习编程。一年后,我成为了eBay公司的一名中级软件工程师(介于初级工程师与高级工程师之间的一个职位)。我不想让大家
3、觉得这是很轻松就能做到的。实际上,这是极具挑战的一件事。在这一年的不断尝试努力过程中,我得到了很多乐趣。刚开始,我学习的是如何用流行的编程语言PythOn来进行编程。但是本书不仅是教你如何使用某种特定的语言编程(确实会有这方面的内容),还会介绍标准教材中所不包括的其他所有知识点。本书分享的是我在成为软件工程师过程中不得不自学的内容。本书不适合那些想要随意了解下编程知识、将写代码作为爱好的人,而是专门写给那些希望以编程为职业的人。不管你的目标是成为一名软件工程师、企业家,还是在其他的岗位上使用编程技能,你都是本书的目标读者。学会一门编程语言还不够,你还需要学会其他技能,才能像计算机科学家一样地工
4、作。我会教授大家我从编程新手到专业软件工程师过程中学到的一切。我写作本书,是为了向有志于编程岗位的人分享他们需要掌握的知识框架。编程概论的书籍都大同小异一用PythOn或Ruby介绍编程的基础知识,然后就让你自己摸索。我经常从读完类似书籍的朋友那听到这样的反馈:我现在该做什么?我还不是一名程序员,也不知道下一步该学什么。本书,就是我给出的答案。1.1 本书的结构本书中一章所涵盖的许多主题可能都可以独立成书。我的目标不是包罗你需要了解的每个主题的所有细节,而是提供一份指引一个编程职业发展所需要的所有技能的导览。第一部分:编程简介。让你尽快写出自己的第一个程序,最好在今天。第二部分:面向对象编程简
5、介。这部分将介绍不同的编程范式,着重阐述面向对象编程。你会开发一个游戏,体会编程的强大能力。读完这部分后你会沉迷于编程。第三部分:编程工具简介。将介绍提升编程生产力的不同工具。这时,你已经沉迷于编程,并希望变得更好。你将会学习相关的操作系统、使用正则表达式提升效率、安装并管理他人的程序,以及使用版本控制与其他工程师协作的知识。第四部分:计算机科学简介。将简要介绍计算机科学知识,主要涵盖两个主题一算法和数据结构。第五部分:找到工作。最后一部分是关于最佳编程实践,如何找到软件工程师的工作,团队协作以及程序员的自我提升。我会分享如何通过技术面试与团队协作的建议,以及如何进一步提升自己的技能。1.2
6、从终点出发我学会编程的方式,与计算机科学通常的教学方式正好相反。本书的结构是根据我自己的方式组织的。一般来说,你会先花很多时间学习理论,理论知识学的太多以至于许多计算机科学的毕业生甚至不知道如何动手编程。杰夫阿特伍德(JeffAtWoOd),在其博客“为什么程序员不会编程”中写道:“和我一样,许多人都碰到了这样的情况,编程岗位的200位申请者中,有199个根本不会写代码。重申一遍:他们一点代码都不会写。”这种现象直接促使AtWood发明了FiZZBUZZ代码挑战,一种用来在面试中筛选申请者的编程测试。大部分人都通不过测试,这也是为什么你要学习本书并掌握实践中要使用到技能。放心吧,在本书中你还会
7、学到如何通过FiZZBUZZ测试的。王者之旅电影中的主角乔什(JoShWaitZkin),在学习的艺术一书中回忆了他如何反向学习国际象棋。他没有和其他人一样研究开局,而是从学习象棋残局(棋盘上只剩下少数几个棋子)开始。这样做让他对国际象棋有了更深的理解,并赢得了多次大赛冠军。与此类似,我认为先学习如何编程再学习理论的方法更高效,因为你会拥有了解背后原理的强烈驱动。这就是为什么本书一直到第五部分才介绍计算机科学理论,而且内容也尽量精简。虽然理论很重要,但是在你拥有了编程经验之后,理论的价值才更大。1.3 你不是一个人在战斗毕业后再学习编程,已经越来越常见。StackOverflow(一个程序员在
8、线社区)在2015年的一份调查中显示,48%的受访者没有计算机科学学位。1.4 自学的优势在eBay工作期间,我的团队中有从斯坦福大学、加州大学和杜克大学计算机科学专业毕业的程序员,还有两名物理学博士。当时我25岁,而年仅21岁的同事对编程和计算机科学的知识比我强10倍这个事实,让我尤其惶恐。虽然与拥有计算机科学学士、硕士甚至是博士学位的同事一起工作的压力很大,但别忘记了你还有“自学的优势”。你选择读这本书,不是出于老师布置的任务,而是因为你内心学习的渴望,这一点是你所拥有的最大优势。苹果公司的创始人斯蒂夫沃兹尼亚克(SteVeWozniak)就是一位自学成才的程序员;还有因在美国宇航局的阿波
9、罗登月计划中做出卓越贡献而获得总统自由勋章的玛格丽特汉密尔顿(MargaretHamilton);还有TUmbIr的创始人大卫卡普(DavidKarp),TWitter的创始人杰克多西(JackDorsey),Instagram的创始人凯文斯特罗姆(KevinSystrom),他们都是自学成才的程序员。15为什么应该编程不管你从事什么工作,编程都有助于你的职业发展。学习编程将给你自己赋能。我喜欢尝试新想法,时刻都有希望启动的新项目。学会编程后,我就可以坐下来自己实现,而不需要依赖他人。编程也会提升你在其他方面的技能。因为你熟练掌握了问题解决能力,鲜有其他工作不会因此而受益。我最近要在Craig
10、IiSt上租房,搜索并筛选房子是个非常费力的活儿。但是我写了一个程序来代替我搜索,最后将结果以邮件形式发送给我。学会编程,将把你从重复性工作中解放出来。如果你想成为软件工程师,市场上对这类岗位的需求也日益增长,但是符合要求的候选者却总是供不应求。到2020年,预计将有一百万个编程岗位空缺。即使你的目标不是成为软件工程师,科学和金融等领域的岗位也开始倾向那些拥有编程经验的申请者。1.6 坚持不懈如果你之前没有任何编程经验,担心自己无法胜任编程工作,本书想告诉你的是:你完全有能力做到。人们对程序员有一些常见的误解,比如程序员都得擅长数学。这是错误的印象,不过编程确实是一件困难的工作。幸运的是,本书
11、涵盖的内容将让这一切变得比你想象得更加容易。为了提高编程技巧,你应该每天练习编程。挡在你面前的唯一障碍就是无法坚持,所以我们要采取一些措施确保自己能够坚持不懈。准备一张检查清单,来确保每天都有做练习,而且也能够帮助你保持专注。如果你还需要其他帮助,效率专家TimFerriS建议采用如下技巧来保持驱动力。事先给家人或朋友一笔钱,如果你在规定的时间内完成了目标,就让他们把钱还给你,否则就将钱捐献给你讨厌的机构。1.7 本书的格式本书的各个章节紧密相关。如果你读到了某些看不懂的概念,可能在前一章已经做了介绍。书中尽量避免重复解释,所以牢记这个特点。在给重点词汇下定义时,会使用斜体。每个章节的末尾都有
12、一个词汇表,对该章内出现的斜体名词进行解释。书中代码段前的注释为GitHUb的网址,读者可于网站直接复制代码。1.8 本书使用的技术为了让读者尽可能的积累编程经验,本书会介绍多种技术。在某些情况下,必须在许多不同的技术中做出选择。在第20章“版本控制”中(对于不了解版本控制的读者,稍后会有解释),我们将会学习Git的基础知识。Git是一个流行的版本控制系统,选择介绍Git是因为笔者认为它已经成为版本控制的业界标准。书中用PythOn来编写大部分的编程示例,因为它是一门很流行的初学者语言,而且即使从来没有使用过PythOn的人学习起来也比较简单。此外,目前几乎每个领域对Python开发者的需求都
13、非常大。不过,书中会尽量做到内容与技术无关注重概念,而非技术本身。首先需要有一台计算机,以便跟着本书进行示例练习。计算机有一个操作系统(OPeratEgsystem),即一个扮演人与计算机物理硬件之间的中间人的程序。可以在屏幕上看到的称为图形用户界面(GraPhiCaIUSerInlerface,GUI),它是操作系统的一部分。台式计算机和笔记本电脑目前有3种常用的操作系统:Windows.UNIX和LinUx。WindoWS是微软推出的操作系统。UNIX操作系统发明于20世纪70年代,目前最流行的UNIX操作系统是苹果的。SX。LinUX则是目前世界上大部分服务器(SerVer)都在隹席的一
14、款开源操作系统。服务器指的是执行托管网站等任务的计算机或计算机程序。开源(open-source)意味着软件不归某个公司或个人所有,而是由一群志愿者维护。LinUX和UNIX都是类UNIX操作系统,意味着二者之间非常相似。本书假设读者已经有一台运行WindowssOSX或UbUmU(LinUX的一个流行版本)操作系统的计算机。1.9 术语表FizzBuzz:用来在编程面试中筛选候选者的一种编程测试。操作系统:扮演计算机物理组件与人之间的中间人的一个程序。图形用户界面(GUl):操作系统的一部分,用户在屏幕上看到的内容。开源:软件不归某个公司或个人所有,而是由一群志愿者维护。Windows:微软
15、推出的操作系统。UNlX:发明于20世纪70年代的一种操作系统,苹果的OSX是UNIX的一个版本。1.inux:世界上大部分服务器(SerVer)都在使用的一款开源操作系统。服务器:执行特定任务(如托管网站)的计算机或计算机程序。类UNIX操作系统:UNIX和LinUX。1.10 挑战练习创建一个每日检查清单,在其中加入练习编程这个任务。第2章起步“一名优秀的程序员,在穿越单行道时也会确认双向的来车情况。”道格拉斯林德(DOUgLinder)2.1什么是编程编程(programming)指的是编写让计算机执行的指令。这些指令可能告诉计算机打印Hell0,World!,从因特网爬取数据,或者读取
16、某个文件的内容并保存至数据库。这些指令被称为代码(code)o程序员用许多不同的编程语言来编写代码。在过去,编程的难度更大,因为程序员必须要使用晦涩难懂的底层编程语言(low-levelprogramminglanguage),如汇编语言(assemblylanguage)o说一门编程语言是底层语言,指的是其与高级编程语言(读起来更像英语的编程语言)相比,更接近用二进制(0和1)编写指令,因此也更难理解。下面是一个用汇编语言编写的简单程序:#http:/z6facmkglobal_startsection.text_start:movrax,1movrdi,1movrsi,messagemov
17、rdx,13syscall;exit()movea,6xorrdi,rdimessagesyscalldbHellozWorld!,10下面则是用一门现代编程语言编写的同一个程序:1 #http:/234 print(Hello,World!)显而易见,如今程序员的工作容易多了。不再需要花费大量时间学习晦涩的底层语言才能编程,相反只要学习一门非常易读的语言PythOn即可。2.2 什么是PythOnPythOn是一门开源编程语言,由荷兰程序员吉多范罗苏姆(GuidovanRossum)发明,并以英国喜剧团体“蒙提派森(MontyPython)的飞行马戏团”命名。吉多发现程序员读代码的时间比写代
18、码花的时间更长,因此他就发明了这门非常易读的语言。Python目前已经是世界上最流行最易学的编程语言之一。所有的主流操作系统和计算机都可运行Py由。n,可将其用于从搭建网络服务器到创建桌面应用等所有领域。由于其如此流行,市场上对Python开发者的需求也很大。2.3 安装Python需要先安装PythOn3才能完成本书中的示例练习。可以从http:/python.org/downloads下载针对WindOWS和OSX的Python版本。如果使用的是UbUmu,操隹系统中默认安装了Python3o请确保下载的是Pythoi13,而不是Pythcm2。本书中的部分示碗不适用于Python2。32
19、位和64位操作系统的计算机均可使用Python。如果计算机是2007年后购买的,它很有可能是一台64位操作系统的计算机。如果不确定操作系统是32位还是64位,只需在网络上搜索相关内容即可确定。如果使用的是WindoWS或MaC计算机,下载PythOn的32位版或64位版安装包,打开文件并按提示操作。还可以浏览http:/theselftaughtprogrammer.io/insta11python网页,观看介绍如何在每个操作系统下安装PythOn的视频。2.4 问题解答从上节开始,读者就需要安装好PythOn了。如果遇到了问题,可以直接跳到第2章的“获得帮助”一节。2.5 交互式SheIlP
20、ython自带了一个叫IDLE的程序,全称是交互式开发环境;它也是“蒙提派森的飞行马戏团”的成员埃里克艾多尔(Ericklle)的姓氏。我们将在IDLE中输入PythOn代码。安装好PythOn之后,在EXPlOrer(PC)、Finder(Mac)或NaUtilUS(Ubuntu)中搜索IDLEo建议为其创建一个桌面快捷方式,以方便查找。点击IDLE程序的图标,带有如下文字说明的程序就会启动(准确的文字可能会有所变化,但是即使没有说明或略有不同都不用担心):Python3.5.1(v3.5.1:37a07cee5969,Dec52015,21:12:44)GCC4.2.1(AppleInc.
21、build5666)(dot3)ondarwinTypecopyright,creditsorlicense()formoreinformation.这个程序被称为交互式SheI1。可以直接在其中键入Python代码,程序就会打印出结果。在提示符后面键入:1print(Hello,World!)然后按下回车。IDLE可能会拒绝执行从Kin祖e、其他电子书或WOrd等文字处理程序中复制的代码。如果使用复制的代码,且遇到了一个无法解释的错误,尝试直接在窗口中输入代码。并且必须键入与示例中一模一样的代码,包括双引号、括号和其他标点符号。交互式SheIl会打印出HelIo,World!,如图2-1所示
22、。Python3.5.1ShellPython3.5.1(v3.5.1:37a07cee5969,Dec521S,21:12:44)GCC4.2.1(AppleInc.build5666)(dot3)ondarwinTypecopyright,credits-or-IicenseOformoreinfornaion.WARNING:TheversionofTcl/Tk(8.5.9)inusemaybeunstable.Visithtp:/www.python.orgdownloodMctcltkforcurrentinformation.PrintcIHeII。,World!)Hello,Wo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 编程 无师自通
链接地址:https://www.desk33.com/p-675892.html