让你的 Python 代码优雅又地道】的更多相关文章

示例代码和引用的语录都来自Raymond的演讲.这是我按我的理解整理出来的,希望你们理解起来跟我一样顺畅! 遍历一个范围内的数字 for i in [0, 1, 2, 3, 4, 5]: print i ** 2 for i in range(6): print i ** 2 更好的方法 for i in xrange(6): print i ** 2 xrange会返回一个迭代器,用来一次一个值地遍历一个范围.这种方式会比range更省内存.xrange在Python 3中已经改名为range…
转载地址:http://www.lightxue.com/transforming-code-into-beautiful-idiomatic-python 用了python这么久,逐渐才了解到python语言的独特之处,根据这篇文章,列出了几个以后写代码要注意的点,提醒自己. 本文是Raymond Hettinger在2013年美国PyCon演讲的笔记(python2.7) 这里只列出最好的几个方法,错误的例子不再举出 1.遍历一个范围的数字 for i in xrange(6): print…
在Python社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用Python,这就是常说的pythonic.一般说地道(idiomatic)的python代码,就是指这份代码很pythonic.Python的语法和标准库设计,处处契合着pythonic的思想.而且Python社区十分注重编码风格一的一致性,他们极力推行和处处实践着pythonic.所以经常能看到基于某份代码P vs NP (pythonic vs non-pythonic)的讨论.pythonic的代码简练,明确…
有时候你会看到很Cool的Python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写.其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一样可以写出像诗一样的Python代码. 1.导入模块 你是不是经常对调用模块时输入一长串模块索引感到头疼?说实在的,数量少的时候或许还可以勉强忍受,一旦程序规模上去了,这也是一项不容小觑的工程. #Bad import urllib.request url = r'http://www.landsb…
简介 在实际项目中,我们可能一开始为了完成功能而忽视了代码的整体质量,因此,使用一些高阶的函数或方法,能够更加使我们的代码更加优雅.废话不多说,现在马上开始. 使用enumerate方法替代range(len) enumerate()中也包含了下标和值,可以很方便的进行索引和值的遍历. data = range(10000) start = time.time() data_len = len(data) for i in range(data_len): print(data[i]) prin…
还能用python代码画爱心?还有这种操作?这是什么原理? 不相信python代码可以画爱心?先来一张效果图来看看效果吧! 用python代码画爱心的思路是怎样的? 1.怎么画心形曲线 2.怎么填满心形曲线 3.怎么用 python 画出爱心 接下来看好了,满满的都是干货,不收藏将是遗憾哦! 第一:怎么画心形曲线 这个最难的部分,前人已将大树栽好,我们只要记住公式,即可在大树下乘凉哦! 今天我们选用中上的那个图形,一起来看看吧! 第二:怎样填满爱心曲线? 简单说:函数=0 是一根线, 那线的左边…
Python与其他语言(比如 java或者 C ++ )相比有较大的区别,其中最大的特点就是非常简洁,如果按照其他语言的思路老师写Python代码,则会使得代码繁琐复杂,并且容易出现bug,在Python中,有个词很火,Pythonic.有的同学可能不明白这个词的意义,小编的理解就是有Python的写法写代码,而非是其他语言的通用写法,写出python的特点,写出Ppython的风格. 下面,就通过几个示例来看看一下不同思维的Python代码的差异. 1.变量值的交换 这个词最常见,大家从最开始…
pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少. 以下为了简略,我们用P表示pythonic的写法,NP表示non-pythonic的写法,当然此P-NP非彼P-NP. 为什么要追求pythonic? 相比于NP,P的写法简练,明确,优雅,绝大部分时候执行效率高,代码越少也就越不容易出错.我认为好的程序员在写代码时,应该追求代码的正确性,简洁性和可读性,这恰恰就是pythonic的精神所在. 对于具有其他编程语言经验而初涉Python的程序员(比如我自己)来说…
何为pythonic? pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少,比如:很娘,很国足,很CCTV等等. 我的理解为,很+名词表达了一种特殊和强调的意味.所以很python可以理解为:只有python能做到的,区别于其他语言的写法,其实就是python的惯用和特有写法. 举个例子: 很python的写法: a,b = b,a 不python的写法: temp = a a = b b = temp 上面的例子通过了元组的pack和unpack完成了对a,b的…
python 如何优雅地退出子进程 主进程产生子进程,子进程进入永久循环模式.当主进程要求子进程退出时,如何能安全地退出子进程呢? 参考一些代码,我写了这个例子.运行之后,用kill pid试试.pid是主进程的pid.当然子进程的也没问题. 1)如果kill pid为子进程的pid,当所有子进程都kill掉了,主进程就关闭了.这也是我们想要的结果. 2)如果kill pid为主进程的pid,主进程向子进程发送退出信号,然后等全部子进程关闭后退出. 保证了主进程在所有子进程退出之后退出. #-*…
http://wuzhiwei.net/be_pythonic/ 何为pythonic? pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少,比如:很娘,很国足,很CCTV等等. 我的理解为,很+名词表达了一种特殊和强调的意味.所以很python可以理解为:只有python能做到的,区别于其他语言的写法,其实就是python的惯用和特有写法. 置换两个变量的值. 很python的写法:   1 a,b = b,a 不python的写法:   1 2 3 temp…
Python 有很多优雅有趣的代码写法,同时还很简短,以至于当我刚开始接触这个编程语言的时候,就爱不释手.而前几天的编程语言榜单中 Python 也超越了 Java 成为了第一,挺替 Python 开心的. Python 到底有多有趣呢?一行代码告诉你! 1)画爱心 print(''.join([''.join([('sergiojune'[(x-y)%10]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 这个可谓是表白神器,每逢过节…
一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的SQL语句,一个.SQL的SQL文件正常都会包含多条SQL语句,如果把这些SQL语句直接贴进Python代码文件,势必会影响代码的可读性和美感,代码量也冗余,那么Python能不能像oracle的PL/SQL客户端或者navicat一样读取SQL文件并且执行会是一件非常有趣的事情. 经过不断百度和尝…
Python 代码编辑器怎么选?PyCharm.VS Code.Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目.然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug. 尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式. 为什么 Jupyte…
原作:BRETT CANNON 译者:豌豆花下猫@Python猫 英文:https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the-terminal 为了我们推出的 VS Code 的 Python 插件 [1],我写了一个简单的脚本来生成变更日志 [2](类似于Towncrier [3],但简单些,支持 Markdown,符合我们的需求).在发布过程中,有一个步骤是运行python news ,它会将 Python 指向我们代…
原理解析 KNN-全称K-Nearest Neighbor,最近邻算法,可以做分类任务,也可以做回归任务,KNN是一种简单的机器学习方法,它没有传统意义上训练和学习过程,实现流程如下: 1.在训练数据集中,找到和需要预测样本最近邻的K个实例: 2.分别统计这K个实例所属的类别,最多的那个类别就是样本预测的类别(多数表决法): 对于回归任务而言,则是求这K个实例输出值的平均值(选择平均法): 因此,该算法的几个重点在于: 1.K值的选取,K值的不同直接会导致最终结果的不同: 选择较小的k值,就相当…
Python猫注:Python 语言诞生 30 年了,如今的发展势头可谓如火如荼,这很大程度上得益于其易学易用的优秀设计,而不可否认的是,Python 从其它语言中偷师了不少.本文作者是一名资深的核心开发者,他广博的视野和精准的认识,让我对 Python 的设计了解得更为全面,同时,他"利用自豪感而非恐惧感"的说法,传达出来的是"专注于自我的进步,不嫉妒他人的成功"的原则,对我也很有帮助.原文写于 2015 年,躺在我的收藏夹里很久很久了,如今顺利翻译掉,这是一件能…
原文链接: 我写的 Python 代码,同事都说好 人生苦短,我用 Python. 程序员的追求就是不写代码,早日财务自由.不对,一不小心把实话说出来了,应该是将代码写得简洁,优雅. Python 程序员的追求则是 Pythonic,正好在 Python 这门语言中,「隐藏」了特别多方法,可以使代码变得简洁,优雅,与众不同. 我在这里总结了一些常用操作,特别是关于列表和字典,分享给大家. 第一个字母大写 这个方法有点意思,无意中发现的. >>> s = "programming…
友情链接 让Python更优雅更易读(第一集) 1.装饰器 1.1装饰器特别适合用来实现以下功能 运行时校验:在执行阶段进行特定校验,当校验通不过时终止执行. 适合原因:装饰器可以方便地在函数执行前介入,并且可以读取所有参数辅助校验. 注入额外参数:在函数被调用时自动注入额外的调用参数.适合原因:装饰器的位置在函数头部,非常靠近参数被定义的位置,关联性强. 缓存执行结果:通过调用参数等输入信息,直接缓存函数执行结果. 注册函数:将被装饰函数注册为某个外部流程的一部分.适合原因:在定义函数时可以直…
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,一些比较熟悉pandas的读者朋友应该经常会使用query().eval().pipe().assign()等pandas的常用方法(相关知识详见我的pandas专题教程https://www.cnblogs.com/feffery/tag/pandas/),书写可读性很高的链式数据分析处理代码,从而更加丝滑流畅地组织代码逻辑.…
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Python, Java, 经验] category: Python --- 我曾经是一个对Java非常反感的人,因为Java的语法非常啰嗦.而用惯了动态类型的Python再使用静态类型的Java就会觉得多出了很多的工作量. 因为工作的关系,我开始使用Java来做项目.在这个过程中,我发现Java在某些方面…
if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog  http://www.dabu.info/if-__-name__-__main__-mean-function-python-code-reuse.html 有人在学习python脚本时会发现有的脚本下面有几行代码;   1 2 if __name__== "__main__": main() 不明白其中的意思,其实这就是方便我们代码复用的,我们可以在…
1 原则 在开始讨论Python社区所采用的具体标准或是由其他人推荐的建议之前,考虑一些总体原则非常重要. 请记住可读性标准的目标是提升可读性.这些规则存在的目的就是为了帮助人读写代码,而不是相反. 本小节讨论你所需记住的一些原则. 1.1 假定你的代码需要维护 人们很容易倾向相信某时所完成的工作在未来不需要添加一部分或对其维护.这是由于很难预料到未来的需求,以及低估自己造成Bug的倾向.然而,所写代码很少不被修改一直存在. 如果你假设自己所写代码会"一劳永逸"的无需之后进行阅读.调试…
树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题中所说的那样,用一行Python代码就可以实现吗? 一行代码实现? 由于树形结构的外层和内层有着相似的结构,所以多可以用递归的方式定义树.再利用Python中提供的defaultdict,我们就可以很轻松地定义树了,而且只有一行代码. from collections import defaultd…
用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abeen:doc_logic abeen$ sphinx-apidoc --helpUsage: sphinx-apidoc [options] -o <output_path> <module_path> [exclude_path, ...] Look recursively in &…
一.需要准备的事情 1.当然是自己的Python代码包了: 2.注册PyPI的一个账号. 二.详细介绍 1.代码包的结构: application \application __init__.py myapplication.py ...... \docs README.txt setup.py 2.说明 setup.py是不可缺少的,定义了代码包的详细信息,我们也是通过该模块进行打包,上传等操作. docs是项目文档,可以通过sphinx生成.可在setup模块中通过参数实现,long_des…
老板叫我帮他测一个命令在windows下消耗的时间,因为没有装windows那个啥工具包,没有timeit那个命令,于是想自己写一个,原理很简单: REM timeit.bat echo %TIME% call %* echo %TIME% 然后两个时间减一下就可以了,但是总是自己去减始终不方便,最好能直接算好打印出来. 因为涉及到时间格式的解析,时间的运算,在batch下比较困难,自然就想到了python或者perl脚本,这里首先想到的是python的-c参数: REM timeit.bat…
ROS系统中提供了测试框架,可以实现python/c++代码的单元测试,python和C++通过不同的方式实现, 之后的两篇文档分别详细介绍各自的实现步骤,以及测试结果和覆盖率的获取. ROS系统中python代码测试介绍 关于测试代码的写法细节请参考官方wiki文档,http://wiki.ros.org/unittest,本文主要说明使用中的坑. ROS中python代码的测试可以有两种实现方式一是节点级的集成测试,可以测试节点创建和消息收发的整个过程:二是代码级的单元测试,在测试用例中导入…
在现在的异常机制处理的比较完善的编码系统里面,让计算机完全崩溃无法操作的代码还是不多的.今天就无意运行到这段python代码,运行完,计算机直接崩溃,任务管理器都无法调用,任何键都用不了,只能强行电源关机.稍微分析了下,应该是list对iterator object处理有漏洞,导致程序无法响应,内存占用迅速暴涨,不过也还是不能解释为什么终结进程都不行.有没有人能帮忙回答下原因呢?先谢谢了 这是一段关于yield的代码: def yield_2(): a, b = 0, 1 while 1: yi…
习惯了java,c++之类的宽容,初学python,被它摆了道下马威,写if else,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩进来表示,好吧,我以后多注意 空白在Python中是重要的.事实上行首的空白是重要的.它称为缩进.在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组. 这意味着同一层次的语句必须有相同的缩进.每一组这样的语句称为一个块.我们将在后面的章节中看到有关块的用处的例子. 你需…