{"id":28423723,"url":"https://github.com/cycleuser/thinkpython2-cn","last_synced_at":"2025-06-25T11:30:56.168Z","repository":{"id":47455843,"uuid":"84080335","full_name":"cycleuser/ThinkPython2-CN","owner":"cycleuser","description":"ThinkPython 中文翻译版本","archived":false,"fork":false,"pushed_at":"2024-04-15T08:54:07.000Z","size":4284,"stargazers_count":114,"open_issues_count":0,"forks_count":48,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-31T19:20:59.524Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cycleuser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-03-06T14:06:14.000Z","updated_at":"2025-04-23T06:01:56.000Z","dependencies_parsed_at":"2025-05-31T19:21:09.285Z","dependency_job_id":"7e3d2947-cdb7-4434-96f7-b2e7c4f92399","html_url":"https://github.com/cycleuser/ThinkPython2-CN","commit_stats":null,"previous_names":["cycleuser/thinkpython-cn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cycleuser/ThinkPython2-CN","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FThinkPython2-CN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FThinkPython2-CN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FThinkPython2-CN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FThinkPython2-CN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cycleuser","download_url":"https://codeload.github.com/cycleuser/ThinkPython2-CN/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleuser%2FThinkPython2-CN/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261862903,"owners_count":23221445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-05T09:09:18.293Z","updated_at":"2025-06-25T11:30:56.157Z","avatar_url":"https://github.com/cycleuser.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Think Python\n\n\u003e 第二版，基于Python3\n\n\n\u003e 原作者 Allen B. Downey\n\n\n\u003e 翻译 [CycleUser](http://blog.cycleuser.org)\n\n[在线阅读地址](https://cycleuser.gitbooks.io/think-python/content/)\n\n\n\n=======\n##  译者的话\n这是一本很经典的Python入门教材，也是一本很适合初学者的编程入门书籍。网上有过一些翻译，不过我觉得都还是自己动手来尝试一下，这样更有利于深入了解和体验，所以就再造轮子了。\n\n##  作者的话\n这是Think Python这本书的第二版，本次使用的是Python3，与Python2有很多不同，这些不同之处会有标注。如果你用Python2的话，还是建议你去阅读[上一个版本](http://www.greenteapress.com/thinkpython/index.html)。\n\n读者可以到[亚马逊](http://amzn.to/Owtmjy)购买本书；或者下载 Think Python 2e [PDF格式的电子版.](http://www.greenteapress.com/thinkpython2/thinkpython2.pdf)；也可以在线阅读 Think Python 2e [HTML网页版本](http://www.greenteapress.com/thinkpython2/html/index.html)（推荐这个，都是文字格式，更方便）.\n\n\n样例代码以及其他问题的解决可以到[这里](http://www.greenteapress.com/thinkpython2/code)找(具体样例的链接在书中就有)。\n\n##  简要介绍\nThink Python 这本书是面向初学者介绍Python编程。\n\n首先介绍的是一些编程的基本内容，给出概念和解释，然后循序渐进地深入讲解每个概念。\n\n复杂的部分，比如递归以及面向对象编程，这些都分成一个个小块，以多个章节的方式来逐步介绍。\n\n##  第二版的更新\n\n*\t开始用Python3：书里面所有样例都用Python3来实现，参考代码也都做了升级，用Python2或者3都能运行。\n\n*\t去掉了一些比较难的内容：基于读者反馈，我们认识到大家存在某些困难，所以就调整或者去掉了一些难点。\n\n*\t浏览器内能Python编程了：初学者遇到的第一个困难就是安装Python。另外有的读者可能不想去直接就安装Python，我们就提供了一个用浏览器来运行Python的简介：使用PythonAnywhere，一个免费的在线Python编程环境。（译者注：中国用户以考虑试试fenby.com，也有类似的实现，还有视频的介绍。）\n\n*\t引入了更多的Python特性：单独加了一章来介绍一些第一版中没有提及的Python功能，比如列表解析和附加的数据结构。\n\n\n这本书是一本自由的书，遵循[创作共用署名-非商业性使用-第三版协议](http://creativecommons.org/licenses/by-nc/3.0/)，这意味着你可以自由地复制、分发和修改他，只要你有所贡献，并且不用于商业目的，就可以。\n\n如果你有一些评论、修正或者建议，可以发邮件给feedback@thinkpython.com。\n\n其他由 Allen Downey 编写的自-和谐-由书籍都可以在[Green Tea Press](http://greenteapress.com/)找到.\n\n##  英文原版下载\n\n*\t编译好的PDF版本在这里下载：[PDF](http://www.greenteapress.com/thinkpython2/thinkpython2.pdf)。\n\n*\tLaTeX代码在GitHub这里可以下载：[this GitHub repository](https://github.com/AllenDowney/ThinkPython2).\n\n\n##  过往历史\n\n第一版在[这里](http://www.greenteapress.com/thinkpython)，是由剑桥大学出版社出版的，标题是 Python for Software Design. 可以到亚马逊去买到。\n本书的原始版本由Green Tea Press 出版，标题为 How to Think Like a Computer Scientist: Learning with Python. 这个版本可以从[Lulu.com](http://lulu.com)这个网站找到。其他由 Allen Downey 编写的自由书籍都可以在Green Tea Press找到.\n\n# 前言\n\n##  本书的奇幻历史\n\n\n在1999年1月的时候呢，我正准备教一门Java的入门编程课。我当时已经教过三次了，受挫感很强。班上挂科率特别高，而且即使那些没挂科的学生编程的整体水平也特别低。\n\n当时有很多问题，首先我就发现教材不太好用。那些教材都特别大部头，有很多关于Java的细节，特别琐碎又并不重要，而且也没有足够的关于如何编程的高层次指导（译者注：就是缺乏战略性指导，没有告诉学生编程的心法）。这些教材总有一些『陷阱门效应』：开头他们都却是挺简单，然后逐步提升，接着突然在某个地方，比如第五章，出现很坑很复杂的陷阱。学生们要突然一下子应对太多新东西，甚至措手不及，而我作为教师就得花费整个后半个学期来一点点给学生们补上。\n\n开课的两周之前，我最终决定要写个自己的教科书。目标如下：\n\n*\t简短。让学生读10页就够比让他们读50页效果好得多。\n\n*\t降低词汇难度。我尽量把术语用量降到最低，并且在首次使用的时候对每一个都进行定义。\n\n*\t循序渐进。为了避免『陷阱门效应』，我专门把这些最为复杂的部分抽离成一个个专题，并且都切分成小规模的部分，一步步来进行。\n\n*\t专注于编程，而不是编程语言。我只保留了关于Java的最小规模内容，没有涉及更多的细节。\n\n\n我还需要个标题，就突发奇想，选了个标题叫做『如何像计算机科学家一样思考』。\n\n我的第一版教材很粗糙，不过用起来效果还不错。学生真能看得进去，并且理解了我在课上所讲的那些难点和有趣的专题，最重要的是，他们能够根据这本教材来实践。\n\n之后我就以GNU自由文档协议来发布了这本书，这一协议允许所有人去复制、修改以及分发这本书。\n\n接下来的事情很有趣了。Jeff Elkner，维吉尼亚的一位高中教师，他很欣赏我这本书，把这本书从Java翻译成了Python的版本。他发给我一份『译稿』，然后我开启了阅读『自己的书』来学习Python的奇妙经历。于是在2001年，我通过Green Tea Press出版了本书的第一个Python版本。\n\n在2003年，我开始在奥林商学院教学，并且第一次开始教Python了。这和Java的对比很鲜明。学生们省力多了，学得也更多了，在有趣的项目上也更努力，整体上都觉得这一学习过程很有乐趣。从那以后，我就继续维护这本书，修正错误，改进样例、附加资料以及练习题。\n\n结果就产生了现在这本书，现在标题简化了很多——Think Python。\n\n主要的改变如下：\n\n*\t在每一章的末尾，我加了关于debug的部分。这些内容提供了关于debug的一些整体策略，比如如何找到和避免bug，还有就是关于Python一些陷阱进行了提醒。\n\n\n*\t我加了更多的练习，从简单的理解方面的测试，到一些比较充足的项目。大多数练习都有解决方案的样本链接。\n\n\n*\t我还添加了一些案例研究，包含练习、解决方案和讨论的更大规模的样例。\n\n\n*\t此外我还扩展了关于程序开发规划和基本设计模式的讨论。\n\n\n*\t关于debug和算法分析，还额外加了一些附录。\n\n\t\n\n这本Think Python 的第二版有如下的新内容：\n\n\n*\t本书内的所有参考代码都升级到Python3了。\n\n\n*\t我增加了一部分内容，以及一些关于web方面的细节，这是为了帮助初学者能够在浏览器中开始尝试Python，这样即便你不想安装Python也没问题了。\n\n\n*\t在第四章的第一节，我把我自己的一个原来叫做Swampy的小乌龟图形包转换撑了一个更标准的Python模块，名字叫做turtle，更好安装，功能也比之前强大了。\n\n\n*\t我还添加了新的一章，叫做『彩蛋』，介绍了一些Python的额外功能，严格来说，这些功能并不算必备的，但有时候蛮好用的。\n\n\n我希望大家能享受学习这本书的过程，也希望这本书能帮助大家学习编程，并且让大家学会像计算机科学家一样思考，哪怕有一点点也好。\n\n  本书英文版原作者：Allen B. Downey（艾伦 唐尼）\n\n        Olin College 奥林商学院\n\n##  致谢\n\n非常感谢Jeff Elkner，是他把我的Java教材翻译成了Python，才引起了这一项目的开始，并且也把Python语言介绍给我，它已经是我最喜欢的编程语言了。\n也要感谢Chris Meyers，他对『如何像计算机科学家一样思考』的一些章节有贡献。\n感谢自由软件基金会，是他们提出了GNU自由文档协议，在这一协议的帮助下，我和Jeff以及Chris的合作成为了可能，当然也要感谢我现在使用的知识共享协议。\n感谢Lulu的编辑们，他们出版了『如何像计算机科学家一样思考』。\n感谢O’Reilly公司的编辑们，他们出版了这本『Think Python』。\n\n最后还要感谢所有曾对本书早期版本做出过贡献的同学们，以及其他参与改错和提出建议的朋友们（列表如下）。\n\n## # 贡献列表\n\n有几百名读者，他们目光敏锐又思维迅捷，在过去的这些年里提供了各种建议，发现了各种错误。他们贡献和热情都是对本项目的巨大帮助。\n\n如果大家有任何意见建议，请发邮件到feedback@thinkpython2.com联系我们。如果基于反馈做出了修改，我会将你添加到贡献列表（当然你不想被添加也可以的）。\n\n希望你能至少把出错句子的一部分提供出来，这都让我更容易去搜索。页码和章节编号也可以，但不太容易找。多谢了！\n\n（译者注：以下贡献列表省略不在此处提供，有兴趣的朋友可以去看英文原版。）\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycleuser%2Fthinkpython2-cn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycleuser%2Fthinkpython2-cn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycleuser%2Fthinkpython2-cn/lists"}