2

代码简洁之道:一行 Python 代码解决问题是时尚还是玄学

 2 years ago
source link: https://www.techug.com/post/code-simplicity-is-one-line-of-python-code-a-fashion-or-metaphysics.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

代码简洁之道:一行 Python 代码解决问题是时尚还是玄学

2

所谓一行流,就是把一个功能用一行代码去实现。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 函数,以及切片赋值等。

本文文字及图片出自 InfoQ


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK