代码简洁之道:一行 Python 代码解决问题是时尚还是玄学
所谓一行流,就是把一个功能用一行代码去实现。Python 的一行流既保证了代码的简洁,又不会牺牲很大的可读性。但一个看似如此简单的事情,如果不彻底掌握这门编程语言,是很难做到的。
我认为,Python 一行流能够帮助你提高编码技能,值得去学习,其原因还有下面五个。
◎ 首先,通过提升你对 Python 核心技术的认知,可以克服许多一直在拖你后腿的编程弱点。没有对基础知识的深入理解,很难取得进步。单行代码是所有程序的基础构件,彻底理解这些基本构件之后,你才有能力驾驭高阶的复杂程序,而不会感到不知所措。
◎ 其次,你会学到如何利用当今正疯狂流行的热门 Python 库,比如数据科学和机器学习用到的那些库。本书由五个介绍单行技术的章节组成,每个都涉及 Python 的不同领域,从正则表达式到机器学习。这种方式会让你对你可以构建的 Python 应用有一个概览,同时也会教你如何使用这些强大的库。
◎ 第三,你会学到怎样写出更加“Pythonic”的代码。Python 初学者,尤其是从其他编程语言过来的人,经常会用不 Pythonic 的方式去编写代码。我们会涵盖 Python 特有的一些概念,诸如列表解析、多重赋值、切片等,所有这些都会帮你写出可读性高、便于跟相同领域的程序员共享的代码。
◎ 第四,学习 Python 单行技术,会迫使你用简洁、清晰的方式去思考。若你不得不把每个代码字符都利用到极致,就没有空间去容纳那些稀稀拉拉、不明重点的代码了。
◎ 第五,你的单行代码新技能使你能够看穿那些设计过于复杂的 Python 代码库,并让你的朋友和面试官留下深刻印象。你可能会发现,用一行代码解决具有挑战性的编程问题,既好玩,效果又令人满意。而且你不是一个人:一个活跃的 Python 极客社群一直在竞争谁能写出最简短、最 Pythonic 的代码来解决各种各样的实际(或不太实际的)问题。
Python 一行流的例子
学习 Python 单行技术既是理解更高级代码库的基础,也是提升自身技能的绝佳工具。在理解几千行代码组成的代码库到底写了些什么之前,必须先了解一行代码的含义。
你是一位初级到中级的 Python 编码者吗?跟很多处于同样位置的人一样,你也许在编码能力进展上有点卡住了。你已经读了很多在线编程教程,也编写过自己的源代码,并成功地交付了一些小项目。你已经完成了一门基础编程课程,并且学过一两本编程教材。也许你还在大学里修过一门程序技术课程,在那里已学到了计算机科学与编程的基础知识。
你也许会受某些信念所限,比如大多数程序员理解源码的速度比你理解的快得多,或者你与前 10% 的程序员差距太大。如果你希望达到高级编码水平,加入顶尖编码专家的行列,那么需要学习新的适应性技能。
小编很有同感,因为十年前刚开始学习计算机科学的时候,也觉得自己在编程上一无所知,并为此苦恼。而与此同时,我所有的同僚看起来都精通编程,且颇具经验。
借助本书,希望帮助你们克服这些限制自我的想法,让你们朝着成为 Python 专家的方向更进一步。
你会学到什么?
下面是你会学到的内容的概述。
1 Python 温故知新 介绍 Python 的基础知识,让你重新检视自己的 Python 知识。
2 Python 技巧 包括 10 个一行流技巧,帮助你熟练掌握基本知识,例如列表解析、文件输入、lambda 函数、map()和 zip()、all()量词、切片,以及基础的列表运算。你还会学到如何引入和操作各种数据结构,利用它们来解决各种各样的日常问题。
3 数据科学 包含了数据科学方面的 10 个一行流程序,全部基于 NumPy 库构建。NumPy 处于 Python 强大的机器学习和数据科学能力的核心,你将会学到基本的 NumPy 知识,如数组、形状、轴、类型、广播、高级索引、切片、排序、搜索、聚合与统计。
4 机器学习 涵盖了使用 Python 的 scikit-learn 库进行机器学习的 10 个一行流程序,会涉及值预测的回归算法,这些算法的例子包括线性回归、K-近邻算法和神经网络。你也会学到分类算法,比如逻辑回归、决策树学习、支持向量机和随机森林。此外,还会学习如何计算多维数据阵列的基本统计数据,以及用于无监督学习的 K-Means 算法,这些都是机器学习领域最为重要的算法与范式。
5 正则表达式 包含 10 个一行流程序,帮助你用正则表达式实现更多的目标。你会学到各种基本的正则表达式,并把它们组合(然后再组合)以创建更加高级的正则表达式,还会学习如何使用分组和命名组、反向查找、转义字符、空白字符、字符集(以及反向字符集)和贪婪/非贪婪运算符。
6 算法 包含了 10 个一行流算法程序,涉及广泛的计算机科学主题,包括拟合、回文、超集、换元、阶乘、质数、斐波那契数列、混淆、搜索和基于算法的排序。其中许多内容将构成更高级算法的基础,是进入全面系统的算法学习的良好导引。
后记 总结全书,让你带着升级后的全新 Python 编程技能,去面对真实世界的考验。
▊《Python 一行流:像专家一样写代码》
关于作者
克里斯蒂安·迈耶(Christian Mayer)是一位计算机科学博士,也是知名 Python 网站 finxter(网址见链接列表“文前 3”条目)创始人和维护者。该网站非常活跃,内容订阅人数已经超过 2 万且仍在持续增长。他的网站不仅发展迅速,也帮助数以万计的学习者提升了编码技能和优化在线业务。克里斯蒂安同时也是《Python 咖啡时间》(Coffee Break Python)系列自出版图书的作者。
关于译者
苏丹,网上 id 一般为 su27,2009 年毕业于北京师范大学数学系,主要从事后端编程工作,也曾从事前端与客户端开发工作。在 Python 的“黄埔军校”豆瓣团队中成长,目前为豆瓣用户产品后端负责人,日常跟 Python 打交道较多。
关于本书
《Python 一行流》会教你阅读和编写一行流程序,系统性拆分和理解任意一行 Python 代码,像专家一样得心应手地编写强壮、紧凑的 Python 程序。本书有 5 个章节,覆盖了编程技巧、正则表达式、机器学习、数据科学的核心课题,以及许多有用的算法。通过对单行程序范例的详细介绍,本书解释了计算机科学的关键概念,并可用来提升编码与分析的重要技能。你会学到 Python 的进阶功能,例如列表解析、切片、lambda 函数、正则表达式、map 和 reduce 函数,以及切片赋值等。
评论