首页 笨办法学+Python+(第三版).pdf

笨办法学+Python+(第三版).pdf

笨办法学+Python+(第三版).pdf

上传者: 152*****054@sina.cn 2014-02-24 评分1 评论0 下载3 收藏0 阅读量507 暂无简介 简介 举报

简介:本文档为《笨办法学+Python+(第三版)pdf》,可适用于软件工程领域,主题内容包含笨办法学Python(第三版)欢迎阅读《笨办法学Python》第三版。本书中译本发布于https:learnpythonthehardwayzhcn符等。

笨办法学Python(第三版)欢迎阅读《笨办法学Python》第三版。本书中译本发布于https:learnpythonthehardwayzhcntranslationreadthedocsorg英文原版地址为http:learnpythonthehardwayorgbookContents:••前言:笨办法更简单•习题:准备工作•习题:第一个程序•习题:注释和井号•习题:数字和数学计算•习题:变量(variable)和命名•习题:更多的变量和打印•习题:字符串(string)和文本•习题:更多打印•习题:打印打印•习题:打印打印打印•习题:那是什么?•习题:提问•习题:提示别人•习题:参数、解包、变量•习题:提示和传递•习题:读取文件•习题:读写文件•习题:更多文件操作•习题:命名、变量、代码、函数•习题:函数和变量•习题:函数和文件•习题:函数可以返回东西•习题:到现在你学到了哪些东西?•习题:读代码•习题:更多练习•习题:更多更多的练习•习题:恭喜你现在可以考试了!•习题:记住逻辑关系•习题:布尔表达式练习•习题:如果(if)•习题:Else和If•习题:作出决定•习题:循环和列表•习题:While循环•习题:访问列表的元素•习题:分支和函数•习题:设计和调试•习题:复习各种符号•习题:列表的操作•习题:字典,可爱的字典•习题:模块、类、对象•习题:物以类聚•习题:对象、类、以及从属关系•习题:来自Percal号行星的哥顿人(Gothons)•习题:继承(Inheritance)VS合成(Composition)•习题:你来制作一个游戏•习题:一个项目骨架•习题:自动化测试•习题:更复杂的用户输入•习题:创建句子•习题:你的第一个网站•习题:从浏览器中获取输入•习题:创建你的web游戏•下一步•老程序员的建议Indicesandtables•SearchPage译者前言《笨办法学Python》(LearnPythonTheHardWay简称LPTHW)是ZedShaw编写的一本Python入门书籍。适合对计算机了解不多没有学过编程但对编程感兴趣的朋友学习使用。这本书以习题的方式引导读者一步一步学习编程从简单的打印一直讲到完整项目的实现。也许读完这本书并不意味着你已经学会了编程但至少你会对编程语言以及编程这个行业有一个初步的了解。本书区别于其它入门书籍的特点如下:•注重实践。本书提供了足够的练习代码如果你完成了所有的练习(包括加分习题)那你已经写了上万行的代码。要知道很多职业程序员一年也就写几万行代码而已。•注重能力培养。除了原序言提到的“读和写”、“注重细节”、以及“发现不同”这样的基本能力以外本书还培养了读者自己专研问题和寻求答案的能力。•注重好习惯的养成。本书详细地讲解了怎样写出好的代码、好的注释、好的项目。这会让你在后续的学习中少走很多弯路。本书结构非常简单其实就是个习题。其中个覆盖了输入输出、变量、以及函数三个课题另外个覆盖了一些比较高级的话题如条件判断、循环、类和对象、代码测试、以及项目的实现等。每一章节的格式基本都是一样的以代码练习题开始读者照着说明编写代码(不允许复制粘贴)运行并检查结果然后再做一下加分习题就可以了。当然如果你觉得加分习题对你来说有点难你也可以暂时跳过以后再完成也没关系。另外阅读本书还需要你有一定的英文能力。其实学编程不懂英语是很吃亏的毕竟编程语言都是基于英语而编程社群的主要交流方式也是英语。不会英语的人在编程界可能就只好当二等公民了。本书的翻译尽量保留了所有的英文专业词汇(可能会有中文说明)而且遵照Zed的建议代码及答案部分没有翻译成中文读者看到不懂的地方请自己查字典解决。如果你对自己的英文能力比较有信心译者强烈推荐你直接去下载阅读英文原版。这本书代码较多文字内容较少因此英文原版的阅读理解也比较容易。LPTHW的风格和别的书差异很大。它没有像一般的入门书籍一样通过讨好读者以激发读者兴趣而是直截了当地告诉你你需要做什么需要注意什么。这种风格可能会让人觉得枯燥乏味读者姑且把这也当做HardWay的一部分把。所以如果你觉得实在不能适应这种风格Zed推荐你看下面两本书:•HowToThinkLikeAComputerScientist•AByteOfPython这本书有中译版本书的电子版会随时跟着作者更新。你可以通过ReadTheDocs读到最新的网页版内容也可以到bitbucket代码仓库下载PDF文件。如果你对本书的翻译有任何意见和建议你可以通过bitbucket进行反馈。你可以访问lulucom购买本书的英文印刷版这也是对原作者的支持。原书版权为ZedShaw所有译文版权为ZedShaw和译者共有。译文遵循原书的版权规定:只允许完整转载禁止商业用途。版本历史第二版加入了web编程的内容。第三版扩充了面向对象编程的部分并且为必要的章节添加了FAQ。前言:笨办法更简单这本小书的目的是让你起步编程。虽然书名说是“笨办法”,但其实并非如此所谓的“笨办法”是指本书教授的方式。本书让你通过练习和记忆来慢慢打好技术基础然后让你由浅入深地把自己学会的技巧应用到各种问题上面。在这本书的帮助下你将通过非常简单的练习学会一门编程语言。做练习是每个程序员的必经之路:做每一道习题一字不差地写出每一个程序让程序运行起来就是这样了。刚开始这对你来说会非常难但你需要坚持下去。如果你通读了这本书每晚花个一两小时做做习题你可以为自己读下一本编程书籍打下良好的基础。通过这本书你学到的可能不是真正的编程但你会学到最基本的学习方法。这本书的目的是教会你编程新手所需的三种最重要的技能:读和写、注重细节、发现不同。读和写很显然如果你连打字都成问题的话那你学习编程也会成问题。尤其如果你连程序源代码中的那些奇怪字符都打不出来的话就根本别提编程了。没有这样基本技能的话你将连最基本的软件工作原理都难以学会。为了让你记住各种符号的名字并对它们熟悉起来你需要将代码写下来并且运行起来。这个过程也会让你对编程语言更加熟悉。注重细节区分好程序员和差程序员的最重要的一个技能就是对于细节的注重程度。事实上这是任何行业区分好坏的标准。如果缺乏对于工作的每一个微小细节的注意你的工作成果将缺乏重要的元素。以编程来讲这样你得到的结果只能是毛病多多难以使用的软件。通过将本书里的每一个例子一字不差地打出来你将通过实践训练自己让自己集中精力到你作品的细节上面。发现不同程序员长年累月的工作会培养出一个重要技能那就是对于不同点的区分能力。有经验的程序员拿着两份仅有细微不同的程序可以立即指出里边的不同点来。程序员甚至造出工具来让这件事更加容易不过我们不会用到这些工具。你要先用笨办法训练自己等你具备一些相关能力的时候才可以使用这些工具。在你做这些练习并且打字进去的时候你一定会写错东西。这是不可避免的即使有经验的程序员也会偶尔写错。你的任务是把自己写的东西和要求的正确答案对比把所有的不同点都修正过来。这样的过程可以让你对于程序里的错误和bug更加敏感。不要复制粘贴你必须手动将每个练习打出来。复制粘贴会让这些练习变得毫无意义。这些习题的目的是训练你的双手和大脑思维让你有能力读代码、写代码、观察代码。如果你复制粘贴的话那你就是在欺骗自己而且这些练习的效果也将大打折扣。对于坚持练习的一点提示在你通过这本书学习编程时我正在学习弹吉他。我每天至少训练小时至少花一个小时练习音阶、和声、和琶音剩下的时间用来学习音乐理论和歌曲演奏以及训练听力等。有时我一天会花个小时来练习因为我觉得这是一件有趣的事情。对我来说要学好一样东西每天的练习是必不可少的。就算这天个人状态很差或者说学习的课题实在太难你也不必介意只要坚持尝试总有一天困难会变得容易枯燥也会变得有趣了。在你通过这本书学习编程的过程中要记住一点就是所谓的“万事开头难”对于有价值的事情尤其如此。也许你是一个害怕失败的人一碰到困难就想放弃。也许你是一个缺乏自律的人一碰到“无聊”的事情就不想上手。也许因为有人夸你“有天分”而让你自视甚高不愿意做这些看上去很笨拙的事情怕有负你”神童”的称号。也许你太过激进把自己跟有多年经验的编程老手相比让自己失去了信心。不管是什么原因你一定要坚持下去。如果你碰到做不出来的加分习题或者碰到一节看不懂的习题你可以暂时跳过去过一阵子回来再看。只要坚持下去你总会弄懂的。一开始你可能什么都看不懂。这会让你感觉很不舒服就像学习人类的自然语言一样。你会发现很难记住一些单词和特殊符号的用法而且会经常感到很迷茫直到有一天忽然一下子你会觉得豁然开朗以前不明白的东西忽然就明白了。如果你坚持练习下去坚持去上下求索你最终会学会这些东西的。也许你不会成为一个编程大师但你至少会明白程序是怎么工作的。如果你放弃的话你会失去达到这个程度的机会。你会在第一次碰到不明白的东西时(几乎是所有的东西)放弃。如果你坚持尝试坚持写习题坚持尝试弄懂习题的话你最终一定会明白里边的内容的。如果你通读了这本书却还是不知道编程是怎么回事。那也没关系至少你尝试过了。你可以说你已经尽过力但成效不佳但至少你尝试过了。这也是一件值得你骄傲的事情。给“小聪明”们的警告有的学过编程的人读到这本书可能会有一种被侮辱的感觉。其实本书中没有任何要居高临下地贬低任何人的意思。只不过是我比我面向的读者群知道的更多而已。如果你觉得自己比我聪明然后觉得我在居高临下那我也没办法因为你根本就不属于我的目的读者群。如果你觉得这本书里到处都在侮辱你的智商那我对你有三个建议:别读这本书了。我不是写给你的我是写给需要学习的人的。放下架子好好学。如果你认为你什么都知道那你就很难从比你强的人身上学到什么了。学Lisp去。我听说什么都知道的人可喜爱Lisp了。对于其他在这里学习的人你们读的时候就想着我在微笑就可以了虽然我的眼睛里还带着恶作剧的闪光。许可协议Copyright(C)byZedAShaw你可以在不收取任何费用而且不修改任何内容的前提下自由分发这本书给任何人。但是本书的内容只允许完整原封不动地进行分发和传播。也就是说如果你用这本书给人上课只要你不向学生收费而且给他们看的书是完整未加修改的那就没问题。特别感谢首先我要感谢帮助我完成这版书的人。首先是PrettyGirlEditingServices可爱的编辑所做的编辑工作。然后是GregNewman他提供了美工图并帮我设计了封面而且还帮忙复审了本书。是他让这本书看上去像本真正的书籍而且就算我没在第一版里提到他的辛劳他也没跟我计较。我还要感谢BrianShumate在网站设计方面的帮助这方面的帮助也是我非常需要的。最后我还要感谢成千上万读过本书第一版而且提出bug报告和改进建议的读者。你们的贡献让这本书的内容更为扎实没有你们我是做不到的。谢谢你们。习题:准备工作这道习题并没有代码内容它的主要目的是让你在计算机上安装好Python。你应该尽量照着说明进行操作例如MacOSX默认已经安装了Python所以就不要在上面安装Python或者别的Python版本了。Warning如果你不知道怎样使用Windows下的PowerShell或者OSX下的Terminal或者Linux下的“bash”那你就需要学习了。我有一个免费的快速入门教程放在http:clilearncodethehardwayorg你可以快速学到PowerShell和Terminal的基本用法。学完后再回来看这本书吧。MacOSX你需要做下列任务来完成这个练习:用浏览器打开http:wwwbarebonescomproductstextwrangler找到并安装TextWrangler文本编辑器。把TextWrangler(也就是你的编辑器)放到Dock中以方便日后使用。找到系统中的“命令行终端(Terminal)”程序。到处找找你会找到的。把Terminal也放到Dock里面。运行Terminal程序这个程序看上去不怎么地。在Terminal程序里边运行python。运行的方法是输入程序的名字再敲一下回车。敲击CTRLD(^D)退出python。这样你就应该退回到敲python前的提示界面了。如果没有的话自己研究一下为什么。学着使用Terminal创建一个目录你可以上网搜索怎样做。学着使用Terminal进入一个目录同样你可以上网搜索。使用你的编辑器在你进入的目录下建立一个文件。你将建立一个文件。使用“Save”或者“SaveAs”选项然后选择这个目录。使用键盘切换回到Terminal窗口如果不知道怎样使用键盘切换你一样可以上网搜索。回到Terminal看看你能不能使用命令看到你新建的文件上网搜索如何将文件夹中的内容列出来。OSX:你应该看到的结果以下是我在自己电脑的Terminal中执行上述练习时看到的内容。和你做的结果会有一些不同所以看看你能不能找出两者不同点来。Lastlogin:SatApr::onttys~$pythonPython(r:,Feb,::)GCC(AppleIncbuild)ondarwinType"help","copyright","credits"or"license"formoreinformation>>>^D~$mkdirmystuff~$cdmystuffmystuff$ls#使用TextWrangler编辑testtxtmystuff$lstesttxtmystuff$WindowsNote感谢zhmark的贡献。用浏览器打开http:notepadplusplusorg下载并安装Notepad文本编辑器。这个操作无需管理员权限。把Notepad放到桌面或者快速启动栏这样你就可以方便地访问到该程序了。这两条在安装选项中可以看到。从开始菜单运行“PowerShell”程序。你可以使用开始菜单的搜索功能输入名称后敲回车即可打开。为它创建一个快捷方式放到桌面或者快速启动栏中以方便使用。运行命令行终端程序(也就是PowerShell)这个程序看上去不怎么地。在命令行终端里边运行python。运行的方法是输入程序的名字再敲一下回车。如果你运行python发现它不存在(python不是可执行命令或者系统找不到python云云)。你需要访问http:pythonorgdownload并且安装Python。确认你安装的是Python而不是Python。你也可以试试ActiveStatePython尤其是你没有管理员权限的时候。如果你安装好了但是python还是不能被识别那你需要在powershell下输入并执行以下命令:Environment::SetEnvironmentVariable("Path","$env:PathC:Python","User")关闭并重启powershell确认python现在可以运行。如果不行的话你可能需要重启电脑。键入CTRLZ(^Z)再敲回车以退出python。这样你就应该退回到敲python前的提示界面了。如果没有的话自己研究一下为什么。学着使用Terminal创建一个目录你可以上网搜索怎样做。学着使用Terminal进入一个目录。同样你可以上网搜索。使用你的编辑器在你进入的目录下建立一个文件。你将建立一个文件使用“Save”或者“SaveAs”选项然后选择这个目录。使用键盘切换回到Terminal窗口如果不知道怎样使用键盘切换你一样可以上网搜索。回到Terminal看看你能不能使用命令看到你新建的文件上网搜索如何将文件夹中的内容列出来。Warning有时这一步你会漏掉:Windows下装了Python但是没有正确配置路径。确认你在powershell下输入了Environment::SetEnvironmentVariable("Path","$env:PathC:Python","User")。你也许需要重启powershell或者计算机来让路径设置生效。Windows:你应该看到的结果>pythonActivePython(ActiveStateSoftwareInc)basedonPython(r:,Mar,::)MSCvbit(Intel)onwinType"help","copyright","credits"or"license"formoreinformation>>>^Z>mkdirmystuff>cdmystuff使用Notepad编辑mystuff目录下的testtxt><如果你没有使用管理员权限安装你会看到一堆错误。忽略它们按回车即可。>>dirVolumeindriveCisVolumeSerialNumberisCEDirectoryofC:DocumentsandSettingsyoumystuff:<DIR>:<DIR>:testtxtFile(s)bytesDir(s)bytesfree>你看到的命令行信息Python信息以及其它一些东西可能会非常不一样不过应该大致不差。你可以通过http:learnpythonthehardwayorg把你找到的错处告诉我们我们会修正过来。LinuxLinux系统可谓五花八门安装软件的方式也各有不同。我们假设作为Linux用户的你已经知道如何安装软件包了以下是给你的操作说明:用浏览器打开http:learnpythonthehardwayorgexercisehtml下载并安装gedit文本编辑器。把gedit(也就是你的编辑器)放到窗口管理器显见的位置以方便日后使用。运行gedit我们要先改掉一些愚蠢的默认设定。从geditmenu中打开Preferences选择Editor页面。将Tabwidth:改为。选择(确认有勾选到该选项)Insertspacesinsteadoftabs。然后打开“Automaticindentation”选项。转到View页面打开“Displaylinenumbers”选项。找到“Terminal”程序。它的名字可能是GNOMETerminal、Konsole、或者xterm。把Terminal也放到Dock里面。运行Terminal程序这个程序看上去不怎么地。在Terminal程序里边运行python。运行的方法是输入程序的名字再敲一下回车。a如果你运行python发现它不存在的话你需要安装它而且要确认你安装的是Python而非Python。敲击CTRLD(^D)以退出python。这样你就应该退回到敲python前的提示界面了。如果没有的话自己研究一下为什么。学着使用Terminal创建一个目录。你可以上网搜索怎样做。学着使用Terminal进入一个目录。同样你可以上网搜索。使用你的编辑器在你进入的目录下建立一个文件。你将建立一个文件使用“Save”或者“SaveAs”选项然后选择这个目录。使用键盘切换回到Terminal窗口如果不知道怎样使用键盘切换你一样可以上网搜索。回到Terminal看看你能不能使用命令看到你新建的文件上网搜索如何将文件夹中的内容列出来。Linux:你应该看到的结果~$pythonPython(r:,Apr,::)GCC(prerelease)onlinuxType"help","copyright","credits"or"license"formoreinformation>>>~$mkdirmystuff~$cdmystuff#使用gedit编辑texttxtmystuff$lstesttxtmystuff$你看到的命令行信息Python信息以及其它一些东西可能会非常不一样。不过应该大致不差就是了。给新手的告诫你已经完成了这节练习取决于你对计算机的熟悉程度这个练习对你而言可能会有些难。如果你觉得有难度的话你要自己克服困难多花点时间学习一下。因为如果你不会这些基础操作的话编程对你来说将会更难学习。如果有程序员告诉你让你使用vim或者emacs那你应该拒绝他们。当你成为一个更好的程序员的时候这些编辑器才会适合你使用。你现在需要的只是一个可以编辑文本的编辑器。我们使用geditTextWrangler或者Notepad是因为它很简单而且在不同的系统上面使用起来是一样的。就连专业程序员也会使用gedit所以对于初学而言它已经足够了。也许有程序员会告诉你让你安装和学习Python。你应该告诉他们“等你电脑里的所有python代码都支持Python了我再试着学学吧。”你这句话足够他们忙活个十来年的了。总有一天你会听到有程序员建议你使用MacOSX或者Linux。如果他喜欢字体美观他会告诉你让你弄台MacOSX计算机如果他们喜欢操作控制而且留了一部大胡子他会让你安装Linux。这里再次向你说明只要是一台手上能用的电脑就可以了。你需要的只有三样东西:gedit、一个命令行终端、还有python。最后要说的是这节练习的准备工作的目的也就是让你可以在以后的练习中顺利地做到下面的这些事情:写出习题的代码在Linux下用geditOSX下用TextWranglerWindows下用Notepad。运行你写的习题。修改错误的地方。重复上述步骤。其他的事情只会让你更困惑所以还是坚持按计划进行吧。习题:第一个程序你应该在练习中花了不少的时间学会了如何安装文本编辑器、运行文本编辑器、以及如何运行命令行终端而且你已经花时间熟悉了这些工具。请不要跳过前一个练习的内容直接进行下面的内容这也是本书唯一的一次这样的警示。将下面的内容写到一个文件中取名为expy。这个命名方式很重要Python文件最好以py结尾。print"HelloWorld!"print"HelloAgain"print"Iliketypingthis"print"Thisisfun"print'Yay!Printing'print"I'dmuchratheryou'not'"print'I"said"donottouchthis'如果你使用的是MacOSX下的TextWrangler那你的文本编辑器大致是这个样子:如果你在Windows下使用Notepad那你看到的应该是这个:别担心编辑器长得是不是一样关键是以下几点:注意我没有输入左边的行号()。这些是额外打印到书里边的以方便对代码具体的某一行进行讨论。例如“参见第行……”你无需将这些也写进python脚本中去。注意我截图中开始的print语句它和代码范例中是完全一样的而且是精确的完全相同不仅仅是表面相似而已。要让这段脚本正常工作代码中的每个字符都必须完全匹配。当然显示的颜色可能是不同的颜色并不重要只有字符才是重要的。然后你需要在命令行终端通过输入以下内容来运行这段代码:pythonexpy如果你写对了的话你应该看到和下面一样的内容。如果不一样那就是你弄错了什么东西。不是计算机出错了计算机没错。你应该看到的结果在MacOSX的Terminal下面你应该看到以下内容:在Windows的PowerShell下你应该看到这些:你也许会看到pythonexpy前面显示了不同的用户名计算机名以及其他一些信息这不是问题重要的是你输入了命令而且看到了相同的输出。如果你看到类似如下的错误信息:$pythonexexpyFile"exexpy",lineprint"Iliketypingthis^SyntaxError:EOLwhilescanningstringliteral这些内容你应该学会看懂的这是很重要的一点因为你以后还会犯类似的错误。就是我现在也会犯这样的错误。让我们一行一行来看。首先我们在命令行终端输入命令来运行expy脚本。Python告诉我们expy文件的第行有一个错误。然后这一行的内容被打印了出来。然后Python打印出一个^(井号caret)符号用来指示出错的位置。注意到少了一个"(双引号doublequote)符号了吗?最后它打印出了一个“语法错误(SyntaxError)”告诉你究竟是什么样的错误。通常这些错误信息都非常难懂不过你可以把错误信息的内容复制到搜索引擎里然后你就能看到别人也遇到过这样的错误而且你也许能找到如何解决这个问题。Warning如果你来自另外一个国家而且你看到关于ASCII编码的错误那就在你的python脚本的最上面加入这一行:#*coding:*这样你就在脚本中使用了unicode编码这些错误就不会出现了。加分习题你还会有加分习题需要完成。加分习题里边的内容是供你尝试的。如果你觉得做不出来你可以暂时跳过过段时间再回来做。在这个练习中试试这些东西:让你的脚本再多打印一行。让你的脚本只打印一行。在一行的起始位置放一个‘#’(octothorpe)符号。它的作用是什么?自己研究一下。从现在开始除非特别情况我将不再解释每个习题的工作原理了。Note井号有很多的英文名字例如:’octothorpe(八角帽)’’pound(英镑符)’,‘hash(电话的#键)’,‘mesh(网)’等。常见问题回答我可不可以使用IDLE?不行。你应该使用OSX的Terminal或者Windows的Powershell和我这里演示的一样。如果你不知道如何使用它们你可以去读一下《命令行快速入门》网址是http:clilearncodethehardwayorgbook怎样让编辑器显示不同颜色?编辑之前先将文件保存为py格式例如expy后面编辑时你就可以看到各种颜色了。运行expy时看到SyntaxError:invalidsyntax。你也许已经运行了python然后又在python环境下运行了一遍python。关掉并重启命令行终端重来一遍只键入pythonexpy就可以了。我还是没法再PowerShell下运行python。那就给你个视频教程看看吧:http:wwwyoutubecomwatchv=ndNlFyGKA错误信息can’topenfile‘expy’:ErrnoNosuchfileordirectory。你需要在你创建文件的目录下运行命令。确认你事先使用cd命令进入了这层目录下。加入你的文件存在lpthwexpy下面那你需要先执行cdlpthw再运行pythonexpy如果你不明白命令的意思那就去看看问题中提到的《命令行快速入门》吧。怎样在代码中输入我们国家的语言文字?确认在文件开头输入这行:#*coding:*我的文件无法运行它直接回到了命令行没有任何输出。很有可能是你把代码做了字面理解认为print"HelloWorld!"就是让你在文件中print"HelloWorld!"出来于是你没有输入print。你的代码应该和我的完全一模一样。我的每行里边有print你的也要确保都有这样代码才能正常运行。习题:注释和井号程序里的注释是很重要的。它们可以用自然语言告诉你某段代码的功能是什么。在你想要临时移除一段代码时你还可以用注解的方式将这段代码临时禁用。接下来的练习将让你学会注释:#Acomment,thisissoyoucanreadyourprogramlater#Anythingafterthe#isignoredbypythonprint"Icouldhavecodelikethis"#andthecommentafterisignored#Youcanalsouseacommentto"disable"orcommentoutapieceofcode:#print"Thiswon'trun"print"Thiswillrun"从现在开始我将用这样的方式来写代码。我一直在强调“完全相同”不过你也不必按照字面意思理解。你的程序在屏幕上的显示可能会有些不同不过重要的是你在文本编辑器中输入的文本的正确性。事实上我可以用任何编辑器写出这段程序而且内容是完全一样的。你应该看到的结果$pythonexpyIcouldhavecodelikethisThiswillrun$再次说明我不会再贴各种屏幕截图了。你应该明白上面的内容是输出内容的字面翻译而$python和最后的$之间才是你应该关心的内容。加分习题弄清楚”#”符号的作用。而且记住它的名字。(中文为井号英文为octothorpe或者poundcharacter)。打开你的expy文件从后往前逐行检查。从最后一行开始倒着逐个单词单词检查回去。有没有发现什么错误呢?有的话就改正过来朗读你写的习题把每个字符都读出来。有没有发现更多的错误呢?有的话也一样改正过来。常见问题回答你确定#符号的名称是poundcharacter?我叫它octothorpe这个名字没有哪个国家在用不过所有的人都能看懂它的意思。每个国家都觉得他们的叫法最正确最闪亮。对我来说这是自大狂的想法而且你也没必要去关心这种细枝末节学习编程才是更重要的事情。如果#是注解的意思那么为什么#*coding:*能起作用呢?Python其实还是没把这行当做代码处理这种用法只是让字符格式被识别的一个取巧的方案或者说是一个没办法的办法吧。在编辑器设置里你还能看到一个类似的注解。为什么print"Hi#there"里的#没被忽略掉?这行代码里的#处于字符串内部所以它就是引号结束前的字符串中的一部分这时它只是一个普通字符而不代表注解的意思。怎样做多行注解?每行前面放一个#就可以了。我们国家的键盘上找不到#字符怎么办?有的国家要通过Alt键组合才能输入这个字符。你可以用搜索引擎找一下解决方案。为什么要让我倒着阅读代码?这样可以避免让你的大脑跟着每一段代码内容的意思走这样可以让你精确处理每个片段从而让你更容易地发现代码中的错误。这是一个很好使的查错技巧。习题:数字和数学计算每一种编程语言都包含处理数字和进行数学计算的方法。不必担心程序员经常撒谎说他们是多么牛的数学天才其实他们根本不是。如果他们真是数学天才他们早就去从事数学相关的行业了而不是写写广告程序和社交网络游戏从人们身上偷赚点小钱而已。这章练习里有很多的数学运算符号。我们来看一遍它们都叫什么名字。你要一边写一边念出它们的名字来直到你念烦了为止。名字如下:•plus加号•minus减号•slash斜杠•*asterisk星号•percent百分号•<lessthan小于号•>greaterthan大于号•<=lessthanequal小于等于号•>=greaterthanequal大于等于号有没有注意到以上只是些符号没有运算操作呢?写完下面的练习代码后再回到上面的列表写出每个符号的作用。例如是用来做加法运算的。print"Iwillnowcountmychickens:"print"Hens",print"Roosters",*print"NowIwillcounttheeggs:"printprint"Isittruethat<"print<print"Whatis",print"Whatis",print"Oh,that'swhyit'sFalse"print"Howaboutsomemore"print"Isitgreater",>print"Isitgreaterorequal",>=print"Isitlessorequal",<=你应该看到的结果$pythonexpyIwillnowcountmychickens:HensRoostersNowIwillcounttheeggs:Isittruethat<FalseWhatisWhatisOh,that'swhyit'sFalseHowaboutsomemoreIsitgreaterTrueIsitgreaterorequalTrueIsitlessorequalFalse$加分习题使用#在代码每一行的前一行为自己写一个注解说明一下这一行的作用。记得开始时的<练习>吧?用里边的方法把Python运行起来然后使用刚才学到的运算符号把Python当做计算器玩玩。自己找个想要计算的东西写一个py文件把它计算出来。有没有发现计算结果是”错”的呢?计算结果只有整数没有小数部分。研究一下这是为什么搜索一下“浮点数(floatingpointnumber)”是什么东西。使用浮点数重写一遍expy让它的计算结果更准确(提示:是一个浮点数)。常见问题回答为什么是求余数符号而不是百分号?很大程度上只是因为涉及人员选择了这个符号而已。一般而言它是百分号没错就跟表示百分之百一样。在编程中除法我们用了而求余数又恰恰选择了这个符号仅此而已。是怎么工作的?换个说法就是“X除以Y还剩余J”例如“除以还剩”。运算的结果就是J这部分。运算优先级是什么样子的?美国我们用PEMDAS这个简称来辅助记忆它的意思是“括号、指数、乘、除、加、减”ParenthesesExponentsMultiplicationDivisionAdditionSubtraction这也是Python里的运算优先级。为什么除法算出来的比实际小?其实不是没算对而是它将小数部分丢弃了试试和比较一下你就看出不同了。习题:变量(variable)和命名你已经学会了print和算术运算。下一步你要学的是“变量”。在编程中变量只不过是用来指代某个东西的名字。程序员通过使用变量名可以让他们的程序读起来更像英语。而且因为程序员的记性都不怎么地变量名可以让他们更容易记住程序的内容。如果他们没有在写程序时使用好的变量名在下一次读到原来写的代码时他们会大为头疼的。如果你被这章习题难住了的话记得我们之前教过的:找到不同点、注意细节。在每一行的上面写一行注解给自己解释一下这一行的作用。倒着读你的py文件。朗读你的py文件将每个字符也朗读出来。cars=spaceinacar=drivers=passengers=carsnotdriven=carsdriverscarsdriven=driverscarpoolcapacity=carsdriven*spaceinacaraveragepassengerspercar=passengerscarsdrivenprint"Thereare",cars,"carsavailable"print"Thereareonly",drivers,"driversavailable"print"Therewillbe",carsnotdriven,"emptycarstoday"print"Wecantransport",carpoolcapacity,"peopletoday"print"Wehave",passengers,"tocarpooltoday"print"Weneedtoputabout",averagepassengerspercar,"ineachcar"Notespaceinacar中的是下划线(underscore)字符。你要自己学会怎样打出这个字符来。这个符号在变量里通常被用作假想的空格用来隔开单词。你应该看到的结果$pythonexpyTherearecarsavailableThereareonlydriversavailableTherewillbeemptycarstodayWecantransportpeopletodayWehavetocarpooltodayWeneedtoputaboutineachcar$加分习题当我刚开始写这个程序时我犯了个错误python告诉我这样的错误信息:Traceback(mostrecentcalllast):File"expy",line,in<module>averagepassengerspercar=carpoolcapacitypassengerNameError:name'carpoolcapacity'isnotdefined用你自己的话解释一下这个错误信息解释时记得使用行号而且要说明原因。更多的加分习题:我在程序里用了作为spaceinacar的值这样做有必要吗?如果只用会有什么问题记住是一个“浮点数”自己研究一下这是什么意思。在每一个变量赋值的上一行加上一行注解。记住=的名字是等于(equal)它的作用是为东西取名。记住是下划线字符(underscore)。将python作为计算器运行起来就跟以前一样不过这一次在计算过程中使用变量名来做计算常见的变量名有i,x,j等等。常见问题回答=和==有什么不同?=(singleequal)的作用是将右边的值赋予左边的变量名。`==`(doubleequal)的作用是检查左右离岸边是否相等。习题中你会学到==的用法。写成x=而非x=也没关系吧?是可以这样写但这种写法不好。操作符两边加上空格会让代码更容易阅读。print时词语间的空格有没有办法不让打印出来?你可以通过这样的方法实现:print"Heysthere""you"后面马上就会讲到。怎样倒着读代码?很简单假如说你的代码有行你就从第行开始和我的第行比对接着比对第行以此类推直到全部检查完。为什么space用了``?这个主要就是为了让你见识一下浮点数并且提出这个问题。看看加分习题吧。习题:更多的变量和打印我们现在要键入更多的变量并且把它们打印出来。这次我们将使用一个叫“格式化字符串(formatstring)”的东西每一次你使用"把一些文本引用起来你就建立了一个字符串。字符串是程序将信息展示给人的方式。你可以打印它们可以将它们写入文件还可以将它们发送给网站服务器很

职业精品

(汽车)产品营销策划书范文.doc

HH牙膏营销方案策划书.doc

加班管理人力资源考勤管理系统方案.doc

物品采购管理制度-正式.doc

用户评论

0/200
    暂无评论
上传我的资料

精彩专题

相关资料换一换

资料评价:

/ 162
所需积分:1 立即下载

意见
反馈

返回
顶部