按关键词阅读:
我们都喜欢 Python , 因为它让编程和理解变的更为简单 。 但是一不小心 , 我们就会忽略规则 , 以非 Pythonic 方式编写一堆垃圾代码 , 从而浪费 Python 这个出色的语言赋予我们的优雅 。 Python 的代码风格是非常优雅、明确和简单 , 在 Python 解释器中执行 import this 你可以看到 Tim Peters 编写的 Python 之禅:
>>> import thisThe Zen of Python, by Tim Peters Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren't special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess.There should be one-- and preferably only one --obvious way to do it.Although that way may not be obvious at first unless you're Dutch.Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea.Namespaces are one honking great idea -- let's do more of those!这里我找了目前最好的中文版本:
美 优于 丑
明确 优于 隐晦
简单 优于 复杂
复杂 也好过 繁复
扁平 优于 嵌套
稀疏 优于 拥挤
可读性很重要
固然代码实用与否 比洁癖更重要 ,
我们以为的特例也往往没有特殊到必须打破上述规则的程度
除非刻意地静默 , 否则不要无故忽视异常
如果遇到模棱两可的逻辑 , 请不要自作聪明地瞎猜 。
应该提供一种 , 且最好只提供一种 , 一目了然的解决方案
当然这是没法一蹴而就的 , 除非你是荷兰人[1]
固然 , 立刻着手 好过 永远不做 。
然而 , 永远不做 也好过 不审慎思考一撸袖子就莽着干
如果你的实现很难解释 , 它就一定不是个好主意
即使你的实现简单到爆 , 它也有可能是个好办法
命名空间大法好 , 不搞不是地球人!
[1]:本文作者 Tim peters 解释说这里的荷兰人指的是 Python 的作者 Guido van Rossum.
【如何写出更具有Python风格的代码,五分钟教会你】以下是用 Python 编写更好的代码的 8 种方法:
一、忘掉类 C 语言风格如果需要打印列表中的所有元素及其索引 , 你想到的第一件事是:
for i in range(len(arr)):print(i, arr[i])那么你仍然在编写 C 代码 。 摆脱这一点 , 请牢记 Python 关键字 enumerate。 它索引列表/字符串中的所有元素 , 并且支持设置索引的起始编号:
>>> for index, item in enumerate(['a','b','c']): ...print(index, item)... 0 a1 b2 c>>> for index, item in enumerate(['a','b','c'],1): #这里第二个参数可以设置起始编号...print(index,item)... 1 a2 b3 c现在看起来更好了 , 而且更加 Pythonic 。 将列表转换成字符串呢?如果你这样写:
# The C waystring = ''for i in arr:string += i就是 C 风格 , 如果使用 Python 的关键字 join , 不仅效率更高 , 而且更优雅:
# The Python waystring = ''.join(arr)就像 join 一样, Python 有很多神奇的关键字 , 因此请不要为语言工作 , 而是使用该语言为你工作 。
文章插图
二、牢记 PEP8我不是要求你完全遵循 PEP8 , 而是要求遵循其中的大多数规则 , 何况现在有很多自动格式化的工具 , 足以让你的代码更加美观 , 我们的 Python 之父也说过:阅读代码的频率远远高于写代码的频率 , 他是如此的正确!因此代码的可读性非常重要 。
你是否对自己曾经写过的代码感到好奇?为什么这么写 , 这句话为什么在这?好吧 , PEP8 是大多数这类问题的答案 。 尽管代码注释是个好方法 , 但是代码的风格也需要加以调整 , 比如变量 i,j,count 等即使第一次出现时写了注释 , 也不能保证后面你仍然记得住 , 这样来看就浪费了宝贵的时间 。
任何普通的程序员都可以编写计算机可以理解的代码 。 只有好的程序员可以编写人类可以理解的代码 。
文章插图
首选 CamelCase 作为类 ,UPPER_WITH_UNDERSCORES 作为常量 , 而 lower_with_underscores 作为变量 , 方法和模块名称 。 即使使用 , 也要避免使用单一名称功能 lambda。
三、善用推导式常用的推导式有:列表推导式 , 集合推导式 , 字典推导式 。 先说下列表推导式 。
列表推导式就是当我们需要基于一个已有的列表创建新的列表时 , 所使用的语法格式 , 列表推导式包含以下四个部分:
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J2N0H020.html
标题:如何写出更具有Python风格的代码,五分钟教会你