26个你不知道的Python技巧,打包带走!

导读:Python是目前世界上最流行的编程语言之一。由于:html

  1. 它容易学习
  2. 它用途超广
  3. 它有很是多的开源支持(大量的模块和库)

本文做者 Peter Gleeson 是一名数据科学家,平常工做几乎离不开python。一路走来,他积累了很多有用的技巧和tips,如今分享给你们。这些技巧将根据其首字母按A-Z的顺序进行展现。python

机器学习

01 all or any

Python之因此成为这么一门受欢迎的语言一个缘由是它的可读性和表达能力很是强。Python也所以常常被调侃为“可执行的伪代码”。不信你看:编程

Python代码

02 bashplotlib

你想要在控制台绘图嘛?api

python绘图

如今,你的控制台中就能够有图了bash

3 collections

Python有一些很棒的默认数据类型,可是有时候他们并不会像你所但愿的那样发挥做用。 幸运的是,Python 标准库提供了collection模块。它让你可使用更为多样数据类型。 collection模块数据结构

04 dir

面对一个Python对象,你是否曾想过能够直接看到其属性?你也许能够试试如下的代码:多线程

Python对象

这是运行Python的时候一个很是有用的功能,用于动态探索你所使用的对象和模块。更多详情,能够查看这里:机器学习

https://docs.python.org/3/library/functions.html#dir编程语言

05 emoji

对的,你没看错!编辑器

用python来建立表情包,你也能够。

06 from future import

Python很是受欢迎,这也就致使了它的版本更新很是快,新的版本每每会有不少新特性。你不更新,就没法使用。

然而,不要惧怕。future 模块可让你导入将来版本的功能。有点像时空穿梭有木有!

07 geopy

对于程序猿来讲地理多是一个很是有挑战性的领域。可是,geopy模块则让它变得很是简单。

它经过提取一系列不一样地理编码服务的api来工做,让你可以得到一个地方的完整街道地址、纬度、经度,甚至海拔。

这里面同时还包含一个有用的“距离”类别。它能使用你选定的度量去计算了两个地点之间的距离。

08 howdoi

有时候你碰到了一个编程问题,以为本身以前明明见过它的解决方法,可是却记不起来具体是怎么样的了。因而你想要去StackOverflow上找,但又不想离开这个终端。这个时候,你须要下面这个工具——howdoi

你所遇到的任何问题均可以问它,它会尽他所能给你返回一个答案。

须要注意的是——它只从StackOverflow最顶端的答案中抓取代码。因此它给你返回的不老是最有用的信息...

09 inspect

Python的inspect模块用于收集Python对象的信息,能够获取类或函数的参数的信息,源码,解析堆栈等等。

下方的代码样例使用了 inspect.getsource() 来打印它自身的源码。一样还使用了 inspect.getmodule()来打印定义了inspect.getmodule()的模块。最后一行代码则是打印了本行代码所在的行号。在本例中,就是 4 。

nspect模块能够有效地让你知道你的代码是如何工做的,你也能够利用它来完成一些我的的源码。

10 Jedi

Jedi库是一个代码自动补齐和静态分析的库。它可使你更快更高效地书写代码。除非你在开发本身的编辑器,不然你可能会很是喜欢将Jedi做为本身的编辑插件。

你可能已经正在使用Jedi而只是没发现。IPython项目就是利用Jedi来实现其自动补全功能。

11 **kwargs

不管你学习那种语言,在这条学习之路上总有那么一些里程碑。在Python的编程学习中,理解神秘的**kwargs语法应该算是一个重要的里程碑。

双星“**”放在字典的前面可让你将字典的内容做为命名参数传递给函数。字典的键是参数的名字,键的值做为参数的值传递给函数。以下所示:

当你想要建立一个函数,它须要能处理事先没有定义过的参数,那么就要用到前面提到的技巧了。

12 List comprehensions

List comprehensions(列表推导式)能够说是我最喜欢的Python技巧之一。这种表达式可让你写出像天然语言同样易于理解而且还很简洁的代码。

你能够经过这个连接了解更多关于列表推导式的用法。地址:

https://www.learnpython.org/en/List_Comprehensions

13 map

Python有许多很是有用的内置函数。其中一个就是map()——特别是和lambda函数相结合的时候。

在这个例子中,map()对x中的每个元素都应用了一个简单的lambda函数。它会返回一个map对象,这个对象能够被转化成可迭代对象,如列表或者元组。

14 newspaper3k

newspaper3k,若是你尚未见过它,那么你可能会被这个Python newspaper模块所惊艳到。

它可让你检索到一系列国际领先出版物中的新闻和相关的元数据。你能够检索图片、文本和做者名。它甚至有一些内置的天然语言处理功能。因此,若是你正在考虑使用BeautifulSoup 或其余自制的爬虫库来应用于你的下一个项目。那么,省省时间和精力吧,你其实只须要$ pip install newspaper3k。

15 Operator overloading(操做符重载)

Python支持操做符重载。“操做符重载”实际上是个简单的概念,你是否曾经想过为何Python可让你使用“+”操做符来同时实现加法和链接字符串?这就是操做符重载在发挥做用。

你能够定义使用Python标准操做符符号的对象,这可让你在特定的环境中使用特定的对象,就像下方的例子同样。

16 pprint

Python的默认print函数能够知足平常的输出任务,但若是要打印更大的、嵌套式的对象,那么使用默认的print函数打印出来的内容会很丑陋。

这个时候咱们就须要pprint了,它可让复杂的结构型对象以可读性更强的格式显示。这对于常常要面对非普通数据结构的Python开发者来讲是必不可少的工具。

17 Queue(队列)

Python支持多线程,它是经过标准库中的Queue模块来实现的。这个模块可让你实现队列数据结构。这种数据结构可让你根据特定的规则添加和检索条目。

“先进先出”(FIFO)队列可让你按照添加对象的顺序来检索他们。“后进先出”(LIFO)队列可让你首先访问最近添加的对象。最后,优先队列可让你根据他们排序的顺序进行检索。

18 repr

当你定义一个类的时候,提供一个方法能够返回用来表示该类对象的可打印字符串会很是有用。例如:

这使得debug更加方便,具体的定义方式以下:

19 sh

sh库让你像调用方法那样调用系统中的命令。

20 Type hints(类型提示)

Python是一种动态类型语言。当你定义变量、函数、类别的时候,你不须要指定数据的类型。这能够大大提高你的开发速度,但也是有代价的。你可能会由于一个简单的输入问题而致使运行出错。

在Python3.5以后,这就不是问题了,在定义函数的时候你能够自主选择要不要提供类型提示。

你还能够定义类型的别名:

虽然不是强制性的,类型注释可让你的代码理解起来更加简单。它们也容许你使用类型检测工具在运行以前捕获这些零散的类型错误。若是你正在从事大型、复杂的项目,那么类型注释也许会很是有帮助

21 uuid

经过Python标准库中的uuid模块,能够快速并简单地生成统一的惟一ID(又称UUID).

UUID是128位的全局惟一标识符,一般由32字节的字符串表示。它能够保证时间和空间的惟一性,也称为GUID,全称为:UUID —— Universally Unique IDentifier,Python 中叫 UUID。它经过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的惟一性。

22 Virtual environments

这多是我最喜欢的Python技巧了。你可能常常要处理不止一个Python项目,不幸的是,有时候不一样项目会依赖不一样的Python版本。这个时候,你应该在系统里安装哪一个Python版本呢?

幸运的是,Python能够支持创建不一样的虚拟环境来知足不一样的版本需求。

如今你能够在一台机器上安装和运行各个独立版本的Python。太棒了!

23 wikipedia

Wikipedia有一个很棒的API,它可让用户经过编程访问到维基的词条内容。使用Python中的wikipedia模块可让你以最便捷的方式访问该API。

与真实站点同样,该模块支持多种语言、页面消除歧义、随机页面检索,甚至还有donate()方法。

24 xkcd(著名Python漫画)

幽默是Python语言的一个重要特性——毕竟,它是以英国喜剧小品节目《Monty Python’s Flying Circus》(《蒙提·派森的飞行马戏团》)命名的。Python的许多官方文档都引用了该剧中的著名情节。

这种幽默感不只在文档中能够找到,不信,你能够试试运行下方的代码:

你将打开兰道尔·门罗的著名幽默漫画《xkcd》:)

25 YAML

YAML是“YAML不是一种标记语言”的外语缩写。它是一个数据格式语言,是JSON的父集。和JSON不一样的是,它能够存储更复杂的对象,而且能够引用自身的元素。你还能够写注释,这让YAML特别适合于书写配置文件。

PyYAML模块可让你使用Python调用YAML。使用下列语句安装:

而后导入到项目中:

PyYAML 使你可以储存任何数据类型的Python对象,以及任何用户定义类的实例。

26 zip

最后一个技巧也很是酷。你是否曾想要让两个列表中的元素逐个映射,组合成字典?那么你应该使用zip。

内置函数zip()接收若干可迭代对象,而后返回一个由多个元组组成的列表。每一个元组根据输入对象的位置索引对其元素进行分组。还可使用*zip()来“解压”对象。

以上就是我想要呈现的全部Python技巧,感谢阅读,但愿你们能从中找到对本身有帮助的技巧。

推荐书籍:

精通Python天然语言处理

Python编程:从入门到实践

贝叶斯思惟:统计建模的PYTHON学习法

相关文章
相关标签/搜索