Python中隐藏了你不知道的10个彩蛋

开发 后端
正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debug来显示re.compile的完整过程。

1、使用re.DEBUG查看正则表达式的匹配过程

正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debug来显示re.compile的完整过程。

Python中隐藏了你不知道的10个彩蛋

一旦你理解了语法,你就可以发现你的错误。在这里我们可以看到[/font]忘了去除[]

2、enumerate函数用于遍历列表中的元素以及它们的下标

Python中隐藏了你不知道的10个彩蛋

3、对默认实参要多加小心

Python中隐藏了你不知道的10个彩蛋

相反,你应该使用一个标记值表示“无定义”,来替换“[]”。

Python中隐藏了你不知道的10个彩蛋

4、对于C系的那些更喜欢括号而不是缩进的开发者,你只需使用以下一条命令:

  1. from __future__ import braces 

5、切片操作中的tricks

  1. a = [1,2,3,4,5] >>> a[::2] [1,3,5] 

特殊的例子是x[::-1],它可以将列表反转

  1. >>> a[::-1] [5,4,3,2,1] 

6、装饰器

装饰器实现了在一个函数中调用其它函数或方法来增加功能性,从而修改参数或结果等,在函数定义前加上装饰器,只需一个“@”符号。

以下示例显示了一个print_args装饰器的用法:

Python中隐藏了你不知道的10个彩蛋

7、取参的trick

你可以用*或者**来取出列表或字典作为函数参数

Python中隐藏了你不知道的10个彩蛋

8、Exception else语句

Python中隐藏了你不知道的10个彩蛋

使用“else”比在“try”语句中添加多余的代码更好,因为它避免了意外获取不被try语句保护的异常…除了声明之外。

9、嵌套列表推导式和生成器表达式

  1. [(i,j) for i in range(3) for j in range(i) ]     
  2. ((i,j) for i in range(4) for j in range(i) ) 

这些语句可以取代大量的嵌套循环代码块

10、主要句式

  1. import this 

下面让我们再诵读一遍Python之禅的要义(The Zen of Python, by Tim Peters):

  1. Beautiful is better than ugly. 
  2. Explicit is better than implicit. 
  3. Simple is better than complex. 
  4. Complex is better than complicated. 
  5. Flat is better than nested. 
  6. Sparse is better than dense. 
责任编辑:未丽燕 来源: 程序师
相关推荐

2019-11-29 16:49:42

HTML语言开发

2009-04-14 21:38:05

LinuxUbuntu技巧

2023-12-21 14:40:09

Python编程语言

2016-11-21 11:43:11

Python

2018-04-04 12:05:04

Postgre数据planner

2020-07-28 08:26:34

WebSocket浏览器

2020-06-12 09:20:33

前端Blob字符串

2022-10-12 08:22:44

Guava工具Collection

2024-05-20 09:27:00

Web 开发CSS

2017-07-21 09:48:45

SQL索引查询

2019-04-30 08:09:12

Windows 10操作系统工具

2021-01-05 11:22:58

Python字符串代码

2020-01-29 19:40:36

Python美好,一直在身边Line

2022-10-13 11:48:37

Web共享机制操作系统

2011-09-15 17:10:41

2009-12-10 09:37:43

2021-02-01 23:23:39

FiddlerCharlesWeb

2010-08-23 09:56:09

Java性能监控

2019-10-28 08:44:29

Code Review代码团队

2023-08-14 15:56:52

CSS 伪元素开发
点赞
收藏

51CTO技术栈公众号