随笔分类 -  python高质量代码方法

摘要:核心知识点: (1)无论try块是否发生异常,都可以使用try/finally复合语句中地finally块来执行清理工作。 (2)顺利运行try块后,若想使某些操作能在finally块地清理代码之前执行,则可将这些操作写入到else块中 Python程序的异常处理可能要考虑四种不同的时机。这些时机可 阅读全文
posted @ 2017-12-12 00:10 明王不动心 阅读(1749) 评论(0) 推荐(1) 编辑
摘要:核心知识点: (1)一般的if/else是前面不执行,后面才执行,循环下面的else是前面执行完后面才会执行,如果是break打断也不会执行。循环为空或False也不执行。 (2)try/expect是前面不执行后面才会执行,try/expect/else是try执行成功才会执行else,也就是ex 阅读全文
posted @ 2017-12-11 23:19 明王不动心 阅读(2594) 评论(0) 推荐(0) 编辑
摘要:核心知识点: (1)内置的zip函数可以平行地遍历多个迭代器。 (2)python3中地zip相当于生成器,会在遍历过程中逐次产生元祖。而python2中地zip则是直接把这些元祖完全生成好,并一次性地返回整份列表。 (3)如果提供地迭代器长度不等,那么zip就会自动提前终止。 (4)itertoo 阅读全文
posted @ 2017-12-10 23:11 明王不动心 阅读(741) 评论(0) 推荐(0) 编辑
摘要:核心要点: (1)enumerate函数提供了一种精简的写法,可以在遍历迭代器时获知每个元素的索引。 (2)尽量用enumerate来改写那种将range与下标访问相结合的序列遍历代码。 (3)可以给enumerate提供第二参数,以指定开始计数时所用的值(默认为0) 在一系列整数上面迭代时,内置的 阅读全文
posted @ 2017-12-10 22:00 明王不动心 阅读(1449) 评论(0) 推荐(0) 编辑
摘要:核心知识点: (1)当输入的数据量较大时,列表推导可能会因为占用太多内存而出问题。 (2)由生成器表达式所返回的迭代器,可以逐次产生输出值,从而避免内存用量问题。 (3)把某个生成器表达式所返回的迭代器,放在另一个生成器表达式的for子表达式中,即可将二者结合起来。 (4)串在一起的生成器表达式执行 阅读全文
posted @ 2017-12-10 21:22 明王不动心 阅读(610) 评论(0) 推荐(0) 编辑
摘要:核心知识点: 1.列表推导式支持多级循环,每一级循环也支持多项条件。 2.列表推导式的读取按照从左往右的顺序来评估,如果有括号,括号里面的优先读取。 3.超过两个表达式的列表推导式非常不好理解,应该尽量避免。 列表推导式除了基本的用法之外,也支持多重循环。 例如,要把一个矩阵(也就是含有列表的列表, 阅读全文
posted @ 2017-12-08 01:49 明王不动心 阅读(428) 评论(0) 推荐(0) 编辑
摘要:核心知识点: 1.列表推导式要比内置的map和filter函数清晰,因为它无需额外编写lambda表达式。 2.列表推导式可以跳过输入列表中的某些元素,如果改用map来做,那就必须辅以filter方能实现。 3.字典与集也支持推导表达式。 Python提供了一套精炼的写法,可以根据一份列表里制作另外 阅读全文
posted @ 2017-12-08 00:52 明王不动心 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:核心知识点: 1.使用负步进可以反转取值字符串及ASCII。 2.stride最好不要与start和end用在一起,会降低代码可读性。 除了基本的切片操作之外,python还提供了somelist[start:end:stride]形式的写法,以实现步进式切割,也就是从每n个元素里面取一个出来。例如 阅读全文
posted @ 2017-12-06 22:58 明王不动心 阅读(318) 评论(0) 推荐(0) 编辑
摘要:核心知识点: 1.用None这个返回值来表示特殊意义的函数,很容易使调用者犯错,因为None和0以及空字符串之类的值,在条件表达式里都会评估为False。 2.两种方法:二元法;将异常抛给上一级直接报错。 编写工具函数(utility function)时,我们有时候喜欢给None这个返回值赋予特殊 阅读全文
posted @ 2017-12-06 19:16 明王不动心 阅读(388) 评论(0) 推荐(0) 编辑
摘要:核心知识点: 1.不要写多余的代码:切片的起止索引为0时,有时候使用负值更方便,应该省略; 2.切片不会计较起止索引是否越界; 3.使用切片对列表负值,系统不会考虑范围的长度; 4.更改浅拷贝生产的列表,不会对原列表产生影响,反之,则不同。 Python提供了一种把序列切成小块的写法。这种切片(sl 阅读全文
posted @ 2017-12-06 02:45 明王不动心 阅读(314) 评论(0) 推荐(0) 编辑
摘要:Python的语法非常精炼,很容易用一行表达式来实现许多逻辑,但是很多时候这样会导致代码的可读性降低,此时使用辅助函数会让代码保持灵动性。 现在有一个字典,我们想从中取值: 取值的结果在我们的意料之内,但是,我想让它只返回数字,没有值或者空值返回0,那该如何解决了,有的同学临机一动: 我们来看一下结 阅读全文
posted @ 2017-12-06 01:46 明王不动心 阅读(345) 评论(0) 推荐(0) 编辑
摘要:《Python Enhancement Proposal #8》(8号Python增强提案)又叫PEP8,它是针对Python代码格式而编订的风格指南。 尽管可以在保证语法正确的前提下随意编写Python代码,但是,采用一致的风格来书写可以让代码更加易懂、更加易读。 采用和其他Python程序员相同 阅读全文
posted @ 2017-12-05 01:55 明王不动心 阅读(300) 评论(0) 推荐(0) 编辑
摘要:很多电脑都预装了多个版本的标准CPython运行时环境,然而,在命令行中输入默认的python命令之后,究竟会执行哪一个版本无法肯定。 python通常是python2.7的别名,但也有可能是python2.6或python2.5等旧版本的别名。 请用--version标志来运行python命令,以 阅读全文
posted @ 2017-12-05 00:09 明王不动心 阅读(1898) 评论(0) 推荐(0) 编辑
摘要:一门语言的编程习惯是由用户来确立的。这些年来,Python开发者用Pythonic这个形容词来描述那种符合特定风格的代码。 这种Pyhtonic风格,既不是严密的规范,也不是由编译器强加给开发者的规则,而是大家在使用Python语言协同工作的过程中逐渐形成的习惯。 Python开发者不喜欢复杂的实物 阅读全文
posted @ 2017-12-04 23:43 明王不动心 阅读(373) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示