知乎上有一个问题:Python 有什么奇技淫巧?其中有各类不按套路出牌的招数,也不乏一些惊为天人的"奇技淫巧",会让你大呼:竟然还有这种操做???html
本文就是对平常使用过的或者以为很精妙的"奇技淫巧"的概括总结。python
Python版问号表达式json
这里巧妙地利用了Python会把False当作序列下标0、把True当作序列下标1的特性,把否认条件的输出放在前面的元组的第一个元素,而把确定条件的输出放在第二个元素。又好比:浏览器
此时是否是一幅"黑人问号"脸呢?服务器
列表的深度拷贝app
提到深度拷贝,是否是一会儿就想起来了copy.deepcopy()函数了?可是对于列表来说,深度拷贝根本不用那么麻烦,只需像上面那样:b = a[:]便可实现,就是这么简单。函数
注:若是a是元组,这样玩是不能够的,切记!好比:spa
能够看出a和b的id是相同的,那么就想仍是乖乖用copy.deepcopy()来拷贝吧:命令行
可是结果又让咱们诧异了,这是由于元组是不可变对象,在内存中同一个元组只会存在一个,再怎么深度拷贝也没用(同为不可变对象的字符串也是同理的)。code
在命令行启动一个本地服务器
打开系统命令行,而后输入命令
而后打开浏览器输入地址:http://localhost:8000/,回车,将会看到命令行所在当前目录下的全部文件和文件夹,简直就是一个浏览器版的文件管理器。
把一个字符串写在多行
链式比大小
动态导入包
字典推导式
见过列表推导式、生成器推导式,那么有没有见过字典推导式呢?上面就是一例。
快速反转字符串
优雅地打开文件
用with语句上下文管理器能够自动地管理文件的打开、关闭,不需手工干预。
else,不止是else
普通用法
循环语句搭配else
判断一个数是不是素数:
可见,若是循环中有break语句,且直到循环结束都没有执行过break语句,那么就会继续走后面的else分支。
异常处理搭配else
可见,若是没有发生异常,就会走else分支。
原文连接:
https://www.cnblogs.com/jiayongji/p/7609200.html
END-