阅读笔记:Python A-Z 技巧

阅读文章后试验加批注:
https://medium.com/free-code-camp/an-a-z-of-useful-python-tricks-b467524ee747
简书上有不少翻译这篇文章的,甚至没有标注来源。哎,这年头,得有点版权意识啊。
文末附上了边读边练的代码,欢迎玩玩。
A
all/any
直接用 any 和 all 把列表包裹起来就可以完成列表里所有值的 或 和 与 运算。
补充一个:

在编辑器跑一下这个,可以打开漫画。在看到这里已经不小心剧透了。哈哈。
B
bashplotlib
可以在命令行画画。一般用不到这个。
C
Collections 库。有很多好用的模块,比如 Counter 可以计数。

D
dir()
把想知道有什么属性/方法的东西丢进去。你就可以看到它后面可以跟的方法。相当于在 Jupyter 里面直接点 Tab 键。

上图里的例子。用 dir('djsfis')获取了字符串有哪些方法,最下面一行,是‘sfi'.capitalize() 调用了一下这个方法。
E
emoji 库 能用 Python 画几个表情,但是没懂这个应用场景。

表情有它更好用的地方。
F


hh 想都别想。第一个属于 Python 里的彩蛋了。
是说 Python 未来版本里会有的新功能。
G
geopy 这个库原来可以打印任何地理位置的地点。
from geopy import GoogleV3。
但现在付费了。
H
howdoi

会在命令行返回搜索信息,嗯,不过需要代理。对国内用户不太友好呀。
I
inspect

帮助你打开一个方法的 help 内容。哦,要比 help 简洁一些:

J
Jedi 可以帮自带的编译器更好的补全输入之类的。在 Pycharm 里都是自带的。
K
**kwargs 在函数里写参数,可以用字典前面加两个 星号 来传参。

L
列表表达式。可以让代码更简洁易懂。

M
map 一种匿名函数。

做了一件事: 完成了一个从 odds 到 y 的映射。映射关系是,每一个元素加 6。
N
newspaper3k
一个比 requests 库好用的解析库。但是我测下来发现,适合新闻站点。比如,新浪新闻:


可以看到网站的品牌和简介。
随便选择一篇文章,这里是第 8 篇。


parse()解析以后,就可以用 aritcle.xxxx 的格式来查看图片、作者、标题等信息。但是也会有作者为空的情况。
同理,把 www.apple.com 也经过了类似的步骤:

通过内置的 nlp() 可以查看某篇文章的摘要和关键词。其他内容可以在最下面的二维码查看。
O
operator overloading
运算符重载,我不建议这么做。因为容易有误解,而且你可能会忘记你做了什么。当然,除非你有写注释的好习惯。但是何必多此一举呢。如果有大佬路过,欢迎留言告知这个用法。
P
pprint 在打印某些复杂结构的数据时,会打印的很好看:

同样的内容,用自带的 print 打是这样的:

Q
Queue
python 把队列已经封装好了。可以在线程里发挥作用。参考https://www.tutorialspoint.com/python3/python_multithreading.htm 网页的最下面。
R
S
sh import sh,就可以通过 sh.pwd()/mkdir('xx')/... 来执行 linux 命令。
T
Type hints。输入提示,允许在定义函数时提醒需要输入的格式。增加可读性。但是也看到过有人吐槽这个功能让函数变丑了。
U
uuid 随机生成一串码。import uuid 后,uuid.uuid4() 就 ok 。

V
virtual environment。这个超好用。尤其是在搞神经网络的 tensorflow 1.- 2.- 搞的很晕时,可以多建几个虚拟环境。除了需要反复的安装包以外,起码不会让两个版本之间串掉。而且海岸不停的报各种关于版本依赖的错。
可以在 Anaconda 的命令窗口下面输入命令行来实现。
W
wikipedia 在 python 里搜维基百科。

来给你们试试 #clubhouse :

X
xkcd 你在命令行输入一下 import antigravity 试试,就会飞起来。
Y
YAML
一个库,然后可以把任意写的随意的结构变得有组织。但我平时没怎么用。用它的爸爸 json 比较多。就没有演示啦。
Z
zip 可以把两个列表很方便的一一对应起来。而在认识这个 zip 之前,需要遍历然后添加。

好啦。看的心动,想跑跑玩玩,可以扫描下方二维码获取 md 格式的文件(导出了代码和结果,辛苦你们自己判断一下咯),可以复制代码。跑的话记得安装好包,当然也可以选择在 Jupyter 里面 !pip install XX(包的名字)来解决。

玩得开心 : P
版权声明: 本文为 InfoQ 作者【Sicolas Flamel】的原创文章。
原文链接:【http://xie.infoq.cn/article/4245164acd645bad4b064c40c】。文章转载请联系作者。
评论