简单的python代码示例,初学者怎样看懂python代码
所谓一行流,就是用一行代码实现一个功能。Python的单行流既保证了代码的简单性,又不牺牲可读性。但是一件看似简单的事情,如果不彻底掌握这门编程语言,是很难做到的。
在我看来,Python单行流可以帮助你提高编码技能,值得学习。有以下五个原因。
首先,通过提高你对Python核心技术的了解,你可以克服很多一直拖你后腿的编程弱点。没有对基础知识的深刻理解,很难有所进步。单行代码是所有程序的基本构件。彻底理解这些基本的构建模块后,你就可以掌握高级复杂程序,而不会感到不知所措。
其次,您将学习如何利用当今非常流行的Python库,例如那些用于数据科学和机器学习的库。这本书由五章组成,介绍单行技术,每一章都涉及Python的不同领域,从正则表达式到机器学习。这种方式将让您对可以构建的Python应用程序有一个大致的了解,并且还将教您如何使用这些强大的库。
第三,你将学习如何编写更多的“Pythonic式”代码。Python初学者,尤其是来自其他编程语言的初学者,经常用非python的方式编写代码。我们将讨论Python特有的一些概念,比如列表解析、多重赋值、切片等。所有这些都将帮助您编写易于与同一领域的程序员共享的可读代码。
第四,学习Python单线技术,会迫使你用简洁明了的方式思考。如果你必须充分利用每一个代码字符,那么那些稀疏和晦涩的代码将没有空间。
第五,你的单线代码新技能使你能够看穿那些设计过于复杂的Python代码库,给你的朋友和面试官留下深刻印象。您可能会发现,用一行代码解决具有挑战性的编程问题既有趣又令人满意。你并不孤单:一个活跃的Python极客社区一直在竞争谁能写出最短、最Python化的代码来解决各种实际(或不太实际)的问题。
Python单行流示例
学习Python单线技术不仅是理解更高级代码库的基础,也是提升自己技能的绝佳工具。在你能理解由几千行代码组成的代码库中写的是什么之前,你必须先理解一行代码的含义。
我们先来快速看一下Python单行流。
q=lambda l:q(u[x for x in l[1:]if x=l[0]])[l[0]]q([x for x in l if x l[0]])if l else[]
这个一行程序对著名的quick sort进行了漂亮简洁的压缩,但是对于很多初级或者中级Python用户来说,它的具体含义可能还是很难把握。
Python单行程序往往是建立在现有基础上的,所以后面页面出现的单行程序的复杂度会逐渐增加。我们将从简单的一行程序开始,这些简单的语句将成为后面更复杂程序的基础。比如前面一行流的快速排序是基于列表解析的,但是看起来又长又难。下面是一个简单的列表解析,用来创建一个方块列表。
lst=[x**2 for x in range(10)]
我们也可以把这个单行程序分解成更简单的单行,用来介绍重要的Python基础知识,比如变量赋值、数学运算符、数据结构、for循环、成员运算符、range()函数3354。所有这些都出现在一个简单的Python程序中!
要知道,基础并不意味着琐碎或者不重要。我们即将看到的单线程序都是有用的,每一章都将针对计算机科学中的一个独立学科或领域,让你从广阔的视角充分了解Python的强大。
可读性注释
《Python 之禅》(Python的禅)包含了Python编程语言的19条指导原则。您可以通过在Python命令行中输入import this来读取它:
导入此
Python的禅宗,作者wqdxz Peters
漂亮总比难看好。
显性比隐性好。
简单比复杂好。
复杂总比复杂好。
扁平的比嵌套的好。
疏比密好。可读性很重要。
以下省略
正如《Python之禅》所说,“可读性很重要”,单行程序是解决问题的最小方案。在许多情况下,将一段代码重写为Python单行程序会提高可读性,并使代码更加Python化。例如,使用列表解析将创建列表的代码缩短到只有一行。请看下面的例子:
在方块之前=[]
对于范围(10)内的I:
squares.append(i**2)
打印(正方形)
[0,1,4,9,16,25,36,49,64,81]在这个代码片段中,我们需要五行代码来生成前10个方块的列表,并将其打印到命令行。但是如果使用更好的一行解决方案,同样的事情可以用更易读、更简洁的方式来完成:
打印后([i**2代表范围(10)内的I)]
[0,1,4,9,16,25,36,49,64,81]输出完全相同,但一行程序是基于更Pythonic式的概念列表分析构建的,可读性更强,更简洁。
不过Python的单行流可能也很难理解。在某些情况下,编写一行程序的解决方案不会使程序更具可读性。但是,就像象棋大师在下棋之前会知道所有可能的行动方案并决定什么是最好的一样,你也需要知道所有能表达你想法的编码方式,以便从中选择最好的方式。追求最优解不是低优先级,而是Python生态系统的核心。正如《Python 之禅》所教的:“美总比丑好。”
编码能力卡住了?这本书的获得可以帮助你。
你是初级到中级Python程序员吗?和很多同岗位的人一样,你可能有点卡在自己的编码能力上。你看过很多在线编程教程,写过自己的源代码,也成功交付过一些小项目。你学完了一门基础编程课程,学了一两本编程教材。也许你在大学上过程序技术课程,在这里你学到了计算机科学和编程的基础知识。
你可能会被某些信念所限制,比如大部分程序员理解源代码的速度比你快得多,或者你比排名前10%的程序员差太远。如果你想达到高级编码水平,加入顶级编码专家,你需要学习新的适应技能。
边肖也有同感,因为当她十年前刚开始学习计算机科学时,她觉得自己对编程一无所知,并为此感到苦恼。同时,我所有的bldmht似乎都精通编程,经验丰富。
借助这本书,希望能帮助你克服这些自我限制的想法,让你在成为Python专家的道路上更进一步。
你会学到什么?
以下是您将学到的内容的概述。
1 Python的暖知识介绍Python的基础知识,让你重新审视自己的Python知识。
Python技能包括10个帮助你掌握基础知识的单行流技能,比如列表解析、文件输入、lambda函数、map()和zip()、all()量词、切片、基本列表操作。您还将学习如何介绍和操作各种数据结构,并使用它们来解决各种日常问题。
3 Data Science包含10个Data Science中的单行流程序,全部基于NumPy库。NumPy是Python强大的机器学习和数据科学能力的核心。您将学习基本的NumPy知识,如数组、形状、轴、类型、广播、高级索引、切片、排序、搜索、聚合和统计。
4机器学习涵盖了10个使用Python的scikit-learn库进行机器学习的单行程序。它将涉及价值预测的回归算法。这些算法的例子包括线性回归、K-最近邻算法和神经网络。你还将学习分类算法,如逻辑回归、决策树学习、支持向量机和随机森林。此外,您将学习如何计算多维数据数组的基本统计数据和无监督学习的K-Means算法,这是机器学习领域最重要的算法和范式。
5正则表达式包含10个单行程序,帮助你用正则表达式实现更多目标。你将学习各种基本的正则表达式,并组合它们(然后组合它们)来创建更高级的正则表达式。您还将学习如何使用分组和命名组、反向查找、转义字符、空白字符、字符集(和反向字符集)以及贪婪/非贪婪操作符。
该算法包含10个单线流算法程序,涵盖了广泛的计算机科学主题,包括拟合、回文、超集、替换、阶乘、素数、斐波那契数列、混淆、搜索和基于算法的排序。这些内容很多会形成更高级算法的基础,对全面系统的算法学习有很好的指导作用。
后记对全书进行了总结,让你以升级后的全新Python编程技能面对现实世界的考验。
《Python一行流:像专家一样写代码》
关于作者
Christian Mayer是计算机科学博士,知名Python网站finxter的创始人和维护者(网址见链接列表“前3”)。该网站非常活跃,内容订阅人数已超过20,000人,并继续增长。他的网站不仅发展迅速,还帮助成千上万的学习者提高了编码技能,优化了在线业务。Zldmf还是《Python咖啡时间》(咖啡休息Python)系列自出版书籍的作者。
关于翻译人员
苏丹,在线id一般为su27,09年毕业于北师大数学系,主要从事后端编程,也从事前端和客户端开发。成长于Python的“黄埔军校”豆瓣团队,目前担任豆瓣用户产品后端负责人,与Python日常打交道较多。
关于这本书
055-79000将教你读写一行流程序,系统拆分理解任意一行Python代码,写出强大紧凑的Python程序,像专家一样得心应手。这本书有五章,涵盖了编程技巧、正则表达式、机器学习、数据科学和许多有用的算法等核心主题。通过单行程序实例的详细介绍,本书解释了计算机科学的关键概念,可用于提高编码和分析的重要技能。您将学习Python的高级函数,如列表解析、切片、lambda函数、正则表达式、map和reduce函数以及切片赋值。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。