24个好用到爆的Python实用技巧

治白癜风去哪里治 http://baidianfeng.39.net/a_bdfzyyq/141022/4499988.html

作为一名数据工作者,我们每天都在使用Python处理大多数工作。在此过程中,我们会不断学到了一些有用的技巧和窍门。

在这里,我尝试以A-Z开头的格式分享这些技巧中的一些,并且在本文中简单介绍这些方法,如果你对其中一个或多个感兴趣,你可以通过文末参考资料查看官方文档。希望对你能有所帮助。

allorany

Python语言如此流行的众多原因之一,是因为它具有很好的可读性和表现力。

人们经常开玩笑说Python是可执行的伪代码。当你可以像这样写代码时,就很难反驳。

bashplotlib

你有没有想过在控制台中绘制图形吗?

Bashplotlib是一个Python库,他能够帮助我们在命令行(粗旷的环境)中绘制数据。

collections

Python有一些很棒的默认数据类型,但有时它们的行为并不完全符合你的期望。

幸运的是,Python标准库提供了collections模块。这个方便的附加组件为你提供了更多的数据类型。

dir

有没有想过如何查看Python对象内部并查看它具有哪些属性?在命令行中输入:

当以交互方式运行Python以及动态探索你正在使用的对象和模块时,这可能是一个非常有用的功能。在这里阅读更多functions相关内容。

emoji

emoji是日本在无线通信中所使用的视觉情感符号,绘指图画,文字指的则是字符,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。在中国大陆,emoji通常叫做“小黄脸”,或者直称emoji。

from__future__import

Python流行的结果之一,总是有新版本正在开发中。新版本意味着新功能——除非你的版本已过时。

不过不要担心。使用该__future__模块可以帮助你用Python的未来版本导入功能。从字面上看,这就像时间旅行、魔法或其他东西。

geogy

地理,对大多数程序员来说是一个具有挑战性的领域。在获取地理信息或者绘制地图时,也会遇到不少问题。这个geopy模块让地理相关内容变得非常容易。

它通过抽象一系列不同地理编码服务的API来工作。通过它,你能够获得一个地方的完整街道地址、纬度、经度甚至海拔高度。

还有一个有用的距离类。它以你偏好的测量单位计算两个位置之间的距离。

howdoi

当你使用terminal终端编程时,通过在遇到问题后会在StackOverflow上搜索答案,完后会回到终端继续编程,此时有时会不记得你之前查到的解决方案,此时需要重新查看StackOverflow,但又不想离开终端,那么此时你需要用到这个有用的命令行工具howdoi。

无论你有什么问题,都可以问它,它会尽力回复。但请注意——它会从StackOverflow的最佳答案中抓取代码。它可能并不总是提供最有用的信息......

inspect

Python的inspect模块非常适合了解幕后发生的事情。你甚至可以调用它自己的方法!

下面的代码示例inspect.getsource()用于打印自己的源代码。inspect.getmodule()还用于打印定义它的模块。

最后一行代码打印出它自己的行号。

当然,除了这些微不足道的用途,inspect模块可以证明对理解你的代码在做什么很有用。你还可以使用它来编写自文档化代码。

Jedi

Jedi库是一个自动完成和代码分析库。它使编写代码更快、更高效。

除非你正在开发自己的IDE,否则你可能对使用Jedi作为编辑器插件比较感兴趣。幸运的是,这已经有可用的负载!

**kwargs

在学习任何语言时,都会有许多里程碑。使用Python并理解神秘的**kwargs语法可能算作一个重要的里程碑。

字典对象前面的双星号**kwargs允许你将该字典的内容作为命名参数传递给函数。

字典的键是参数名称,值是传递给函数的值。你甚至不需要调用它kwargs!

当你想编写可以处理未预先定义的命名参数的函数时,这很有用。

列表(list)推导式

关于Python编程,我最喜欢的事情之一是它的列表推导式。

这些表达式可以很容易地编写非常顺畅的代码,几乎与自然语言一样。

map

Python通过许多内置功能支持函数式编程。最有用的map()功能之一是函数——尤其是与lambda函数结合使用时。

在上面的示例中,map()将一个简单的lambda函数应用于x.它返回一个映射对象,该对象可以转换为一些可迭代对象,例如列表或元组。

newspaper3k

如果你还没有看过它,那么准备好被Pythonnewspapermodule模块震撼到。它使你可以从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。它甚至有一些内置的NLP功能。

因此,如果你正在考虑在下一个项目中使用BeautifulSoup或其他一些DIY网页抓取库,使用本模块可以为你自己节省不少时间和精力。

Operatoroverloading

Python提供对运算符重载的支持,这是让你听起来像一个合法的计算机科学家的术语之一。

这实际上是一个简单的概念。有没有想过为什么Python允许你使用+运算符来添加数字以及连接字符串?这就是操作符重载的作用。

你可以定义以自己的特定方式使用Python的标准运算符符号的对象。并且你可以在与你正在使用的对象相关的上下文中使用它们。

pprint

Python的默认print函数完成了它的工作。但是如果尝试使用print函数打印出任何大的嵌套对象,其结果相当难看。这个标准库的漂亮打印模块pprint可以以易于阅读的格式打印出复杂的结构化对象。

这算是任何使用非平凡数据结构的Python开发人员的必备品。

Queue

Python标准库的Queue模块实现支持多线程。这个模块让你实现队列数据结构。这些是允许你根据特定规则添加和检索条目的数据结构。

“先进先出”(FIFO)队列让你可以按添加顺序检索对象。“后进先出”(LIFO)队列让你可以首先访问最近添加的对象。

最后,优先队列让你可以根据对象的排序顺序检索对象。

这是一个如何在Python中使用队列Queue进行多线程编程的示例。

__repr__

在Python中定义类或对象时,提供一种将该对象表示为字符串的“官方”方式很有用。例如:

sh

Python是一种很棒的脚本语言。有时使用标准的os和subprocess库可能有点头疼。

该SH库让你可以像调用普通函数一样调用任何程序——对于自动化工作流和任务非常有用。

Typehints

Python是一种动态类型语言。定义变量、函数、类等时不需要指定数据类型。这允许快速的开发时间。但是,没有什么比由简单的输入问题引起的运行时错误更烦人的了。

从Python3.5开始,你可以选择在定义函数时提供类型提示。

uuid

通过Python标准库的uuid模块生成通用唯一ID(或“UUID”)的一种快速简便的方法。

Virtualenvironments

你可能同时在多个Python项目上工作。不幸的是,有时两个项目将依赖于相同依赖项的不同版本。你在你的系统上安装了什么?

幸运的是,Python支持对虚拟环境的让你可以两全其美。

wikipedia

维基百科有一个很棒的API,它允许用户以编程方式访问无与伦比的完全免费的知识和信息。在wikipedia模块使访问该API非常方便。

xkcd

幽默是Python语言的一个关键特征,它是以英国喜剧小品剧Python飞行马戏团命名的。Python的许多官方文档都引用了该节目最著名的草图。不过,Python的幽默并不仅限于文档。试试运行下面的行:

YAML

YAML指的是“非标记语言”。它是一种数据格式化语言,是JSON的超集。

与JSON不同,它可以存储更复杂的对象并引用它自己的元素。你还可以编写注释,使其特别适合编写配置文件。该PyYAML模块可让你使用YAML使用Python。

YAML

YAML指的是“非标记语言”。它是一种数据格式化语言,是JSON的超集。

与JSON不同,它可以存储更复杂的对象并引用它自己的元素。你还可以编写注释,使其特别适合编写配置文件。该PyYAML模块可让你使用YAML使用Python。

该zip()内置函数需要一系列可迭代的对象,并返回一个元组列表中。每个元组按位置索引对输入对象的元素进行分组。

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。




转载请注明:http://www.aierlanlan.com/rzgz/1571.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了