温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
python
无师自通
分类建议:计算机编程语言Python人民邮电出版社网址:封面设计:董志桢“我总是随身携带几本自学编程的书,给任何来找我寻求职业建议的人。”罗宾艾布拉姆斯(Robin Abrams),HCL 科技公司、FactSet Research、Lattice 半导体公司和 Sierra Wireless 公司的董事会成员“想学习专业的编程吗?那就遵循科里的建议。”戴维菲利普斯(David Phillips),Hackbright Academy 编程学校联合创始人“这本书给我留下了难以置信的印象。”乔安布坎南(JoAnn Buchanan),艾伦脑科学研究所(Allen Institute for Brain Science)高级研究员“学习编程在金融领域变得越来越重要,奥尔索夫的书教会了我保持竞争力所需要的技能。”德里克舍费尔(Derek Schaefer),嘉信理财(Charles Schwab)高级财务经理“这本书读起来很愉快,我从没想过我会如此评价一本技术图书。”梅琳达萨克斯(Melinda Sacks),圣何塞水星报作家、编辑本书一共分为五个部分:第一部分 介绍编程基础知识以及函数、容器、字符串、循环和模型等概念;第二部分 介绍编程范式和面向对象编程等知识;第三部分 介绍 Bash、正则表达式、包管理器和版本控制等编程工具;第四部分 介绍数据结构和算法方面的知识;第五部分 介绍求职和团队协作的相关内容。异步社区提供书中所有的源代码下载。每章结尾都有习题以便读者回顾所学内容,所有习题的答案也都提供下载。科里奥尔索夫在大学阶段主修政治学,毕业后通过自学编程技能,成功进入 eBay 公司工作,开启了其软件工程师的生涯。随后他在硅谷工作多年,现已利用技术开始了自主创业。本书是作者基于自己成功经验写作的,专为所有想要自学编程的初学者准备。即便你并不想成为一名专业的软件工程师,读完本书,也能在日常工作中运用编程技能来提升工作能力、提高工作效率。作者简介宋秉金曾参与翻译Python 参考手册(第四 版 修 订 版)OpenStack 云计算实战手册等技术图书。他也是一名通过自学掌握 Python 的程序员,目前在互联网公司从事产品方向工作,平时喜欢自己写写代码。由于对 Python 的喜爱,也为了帮助更多的人学习 Python、掌握编程技能,译者通过微信公众号“编程派”与广大Python 爱好者分享相关的优质内容。译者简介 美 科里奥尔索夫(Cory Althoff)著 宋秉金译THE SELF-TAUGHT PROGRAMMER无师自通编程无师自通PythonPython专业程序员的养成专业程序员的养成The Definitive Guide to Programming Professionally编程FM49710Python编程无师自通专业程序员的养成.indd 1-2,4-518-12-6 下午3:10 版 权 声 明 The Self-Taught Programmer by Cory Althoff ISBN:978-1-5202-8817-8 Copyright 2017 by Cory Althoff.Original English language edition published by arrangement with Hodgman Literary LLC,through The Grayhawk Agency Ltd.Simplified Chinese-language edition Copyright 2018 by Posts&Telecom Press.All rights reserved.本书中文简体字版由 Hodgman Literary LLC 授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。版权所有,侵权必究。著 美 科里奥尔索夫(Cory Althoff)译 宋秉金 责任编辑 杨大可 责任印制 焦志炜 人民邮电出版社出版发行 北京市丰台区成寿寺路 11 号 邮编 100164 电子邮件 网址 http:/ 涿州市京南印刷厂印刷 开本:8001000 1/16 印张:16 字数:288 千字 2019 年 1 月第 1 版 印数:1 3 000 册 2019 年 1 月河北第 1 次印刷 著作权合同登记号 图字:01-2017-8621 号 定价:59.00 元 读者服务热线:(010)81055410 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字 20170147 号 目 录目 录 第一部分 编程简介 第 1 章 概述.3 1.1 本书的结构.4 1.2 从终点出发.4 1.3 你不是一个人在战斗.5 1.4 自学的优势.5 1.5 为什么应该编程.5 1.6 坚持不懈.6 1.7 本书的格式.6 1.8 本书使用的技术.6 1.9 术语表.7 1.10 挑战练习.7 第 2 章 起步.9 2.1 什么是编程.9 2.2 什么是 Python.10 2.3 安装 Python.10 2.4 问题解答.11 2.5 交互式 shell.11 2.6 保存程序.12 2.7 运行示例程序.12 2.8 术语表.13 2.9 挑战练习.13 第 3 章 编程概论.15 3.1 示例.15 3.2 注释.16 3.3 打印.17 3.4 代码行.17 3.5 关键字.18 3.6 间距.18 3.7 数据类型.19 3.8 常量和变量.21 3.9 语法.24 3.10 错误与异常.25 3.11 算术操作符.26 3.12 比较操作符.29 3.13 逻辑操作符.31 3.14 条件语句.34 3.15 语句.38 3.16 术语表.40 3.17 挑战练习.42 第 4 章 函数.43 4.1 表达概念.43 4.2 函数.44 4.3 定义函数.44 4.4 内置函数.47 4.5 复用函数.49 4.6 必选及可选参数.51 4.7 作用域.52 4.8 异常处理.55 目录 2 4.9 文档字符串.58 4.10 有需要才使用变量.58 4.11 术语表.59 4.12 挑战练习.59 第 5 章 容器.61 5.1 方法.61 5.2 列表.62 5.3 元组.66 5.4 字典.69 5.5 容器嵌套容器.72 5.6 术语表.76 5.7 挑战练习.76 第 6 章 字符串操作.77 6.1 三引号字符串.77 6.2 索引.77 6.3 字符串是不可变的.79 6.4 字符串拼接.79 6.5 字符串乘法.80 6.6 改变大小写.80 6.7 格式化.80 6.8 分割.82 6.9 连接.82 6.10 去除空格.83 6.11 替换.84 6.12 查找索引.84 6.13 in 关键字.85 6.14 字符串转义.85 6.15 换行符.86 6.16 切片.87 6.17 术语表.88 6.18 挑战练习.89 第 7 章 循环.91 7.1 for 循环.91 7.2 range 函数.95 7.3 while 循环.95 7.4 break 语句.96 7.5 continue 语句.98 7.6 嵌套循环.99 7.7 术语表.100 7.8 挑战练习.101 第 8 章 模块.103 8.1 导入内置模块.103 8.2 导入其他模块.105 8.3 术语表.107 8.4 挑战练习.107 第 9 章 文件.109 9.1 写文件操作.109 9.2 自动关闭文件.110 9.3 读取文件.111 9.4 CSV 文件.112 9.5 术语表.114 9.6 挑战练习.114 第 10 章 综合练习.115 10.1 Hangman.116 10.2 挑战练习.119 第 11 章 练习.121 11.1 阅读.121 11.2 其他资源.121 11.3 寻求帮助.121 目录 3 第二部分 面对对象编程简介 第 12 章 编程范式.125 12.1 状态.125 12.2 过程式编程.125 12.3 函数式编程.127 12.4 面向对象编程.128 12.5 术语表.133 12.6 挑战练习.134 第 13 章 面向对象编程的 四大支柱.135 13.1 封装.135 13.2 抽象.138 13.3 多态.138 13.4 继承.140 13.5 组合.143 13.6 术语表.144 13.7 挑战练习.144 第 14 章 深入面向对象编程.145 14.1 类变量与实例变量.145 14.2 魔法方法.147 14.3 is.149 14.4 术语表.150 14.5 挑战练习.150 第 15 章 综合练习.151 15.1 卡牌.151 15.2 牌堆.153 15.3 玩家.154 15.4 游戏.155 15.5 战争.157 第三部分 编程工具简介 第 16 章 Bash.163 16.1 跟随练习.163 16.2 找到 Bash.164 16.3 命令.164 16.4 最近命令.165 16.5 相对路径与绝对路径.165 16.6 导航.166 16.7 旗标.168 16.8 隐藏文件.169 16.9 管道.169 16.10 环境变量.169 16.11 用户.170 16.12 了解更多.171 16.13 术语表.171 16.14 挑战练习.172 第 17 章 正则表达式.173 17.1 初始配置.173 17.2 简单匹配.174 17.3 匹配起始位置.176 17.4 匹配多个字符.177 17.5 匹配数字.178 17.6 重复.179 17.7 转义.181 17.8 正则工具.182 17.9 术语表.182 17.10 挑战练习.183 第 18 章 包管理器.185 18.1 包.185 18.2 pip.185 目录 4 18.3 虚拟环境.188 18.4 术语表.188 18.5 挑战练习.188 第 19 章 版本控制.189 19.1 代码仓库.189 19.2 入门.190 19.3 推送和拉取.191 19.4 推送示例.192 19.5 拉取示例.195 19.6 回退版本.195 19.7 diff.196 19.8 下一步.197 19.9 术语表.197 19.10 挑战练习.198 第 20 章 融会贯通.199 20.1 HTML.199 20.2 爬取 Google 新闻.200 20.3 术语表.204 20.4 挑战练习.204 第四部分 计算机科学简介 第 21 章 数据结构.207 21.1 数据结构.207 21.2 栈.207 21.3 使用栈逆转字符串.210 21.4 队列.211 21.5 购票队列.213 21.6 术语表.215 21.7 挑战练习.216 第 22 章 算法.217 22.1 FizzBuzz.217 22.2 顺序搜索.218 22.3 回文词.219 22.4 变位词.220 22.5 计算字母频数.220 22.6 递归.221 22.7 术语表.223 22.8 挑战练习.224 第五部分 找到工作 第 23 章 最佳编程实践.227 23.1 写代码是最后的手段.227 23.2 DRY.227 23.3 正交性.227 23.4 每个数据都只应保存在 一处.228 23.5 函数只做一件事.228 23.6 若耗费时间过长,你的做法 很可能就是错的.228 23.7 第一次就要用最佳的方法 完成.228 23.8 遵循惯例.229 23.9 使用强大的 IDE.229 23.10 记录日志.230 23.11 测试.230 23.12 代码审查.230 23.13 安全.231 23.14 术语表.232 第 24 章 第一份编程工作.233 24.1 选择方向.233 24.2 积累初期经