python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

被人工智能捧红的 Python 已是一种发展完善且非常多样化的语言,其中肯定有一些你尚未发现的功能。本文或许能够让你学到一些新技巧。

Python 是世界上最流行、热门的编程语言之一,原因很多,比如:

  • 易于学习
  • 超高的通用性
  • 具备大量模块和库

本文将分享一些使用 Python 的技巧,顺序按照 A-Z 排列。

all or any

Python 非常受欢迎的原因之一是其可读性和表达性。

人们还经常把 Python 笑称为「可执行伪码(executable pseudocode)」。但是,当你可以编写这样的代码时,很难去反驳这种言论:

小编在此谢谢大家的观看!Python很容易学!所以小编有弄一个交流,互问互答,资源共享的交流学习基地,如果你也是Python的学习者或者大牛都欢迎你来!㪊:548+377+875!一起 学习共同进步!

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

bashplotlib

想在控制台中绘图吗?

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

使用上面的行,即可在控制台中绘图。

collections

Python 有一些很棒的认数据类型,但有时候它们可能不会尽如你意。

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

collections 模块:https://docs.python.org/3/library/collections.html

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

dir

你是否想过如何查看 Python 对象内部及其具有哪些属性

输入以下命令行:

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

当以交互方式运行 Python 时,这可能是一个非常有用的功能,并且可以动态地探索你正在使用的对象和模块。

想要了解更多,点这里:https://docs.python.org/3/library/functions.html#dir

emoji

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

from __future__ import

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

不过,别担心。__ future__模块允许用户导入新版 Python 的功能。这简直就像时间旅行,或者魔法什么的。

__ future__模块:https://docs.python.org/2/library/*future*.html

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

geopy

地理(Geography)对于程序员来说可能是一个具有挑战性的领域。但是 geopy 模块让它变得异常简单。

geopy 模块:https://geopy.readthedocs.io/en/latest/

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

howdoi

陷入编码问题,却不记得以前见过的解决方案?需要检查 StackOverflow,但不想离开终端?

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

inspect

Python 的 inspect 模块非常有助于理解问题背后的详情。你甚至可以在 inspect 模块上调用方法

inspect 模块:https://docs.python.org/3/library/inspect.html

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

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

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

当然,除了这些琐碎的用途之外,inspect 模块还能帮助你理解代码正在做的事。你还可以用它编写自文档化代码

Jedi

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

除非你正在开发自己的 IDE,否则你肯定会对使用 Jedi 库作为编辑插件很感兴趣。

Jedi:https://jedi.readthedocs.io/en/latest/docs/usage.html

你可能已经在使用 Jedi 了。IPython 项目就使用 Jedi 实现代码自动完成功能

**kwargs

学习任何语言时都会遇到很多里程碑。对于 Python 来说,理解神秘的**kwargs 语法可能算是其中之一。

词典对象前面的双星号可以让你把该词典的内容作为命名参数输入到函数中。

词典的秘钥是参数名,值是传递给函数的值。你甚至不需要称它为 kwargs

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

当你想编写能够处理事先未定义的命名参数的函数时,这个很有用。

列表推导式(List comprehensions)

我最喜欢 Python 编程的原因之一是它的列表推导式(https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions)。

这些表达式使得编写干净易读的代码变得很容易,那些代码读起来几乎像自然语言一样。

关于它们的更多使用信息请查看:https://www.learnpython.org/en/List_Comprehensions

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

map

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

lambda 函数:https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

在上面的例子中,map() 将一个简单的 lambda 函数应用于 x 中的每个元素。它返回一个 map 对象,该对象可以被转换成可迭代的对象,如列表或元组

newspaper3k

如果你之前没有见过它,那么我建议你先查看:https://pypi.org/project/newspaper3k/。

它可以帮助你从大量顶级国际出版物中检索到新闻文章和相关元数据。你可以检索图像、文本和作者名。

它还有一些内置的 NLP 功能

地址:https://newspaper.readthedocs.io/en/latest/user_guide/quickstart.html#performing-nlp-on-an-article

如果你想在下一个项目中使用 BeautifulSoup 或其它 DIY 网页抓取库,那么不如使用$ pip install newspaper3k,既省时又省事,何乐而不为呢?

运算符重载(Operator overloading)

Python 支持运算符重载。

它实际上是一个简单的概念。你有没有想过为什么 Python 允许用户使用 + 运算符来将数字相加,并级联字符串?这就是运算符重载在发挥作用。

你可以使用 Python 的标准运算符号来定义对象,这样你可以在与这些对象相关的语境中使用它们。

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

pprint

Python 的认 print 函数就可以实现打印功能。但如果尝试打印较大的嵌套对象,就会发现打印结果很丑。

这时 Python 标准库的 pretty printer 模块就可以发挥作用了。该模块可以将复杂的结构化对象以一种易读的格式打印出来。

pretty printer 模块:https://docs.python.org/3/library/pprint.html

Python 开发者的必备技能之一就是处理复杂的数据结构。

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

Queue

Python 支持多线程,而这是由 Python 标准库的 Queue 模块支持的。

该模块允许用户实现队列(queue)数据结构。队列数据结构允许用户根据特定的规则添加和检索条目。

『First in,first out』 (FIFO) 队列允许用户按照对象被添加的顺序来检索对象。『Last in,first out』 (LIFO) 队列允许用户首先访问最新添加的对象。

最后,优先级队列(priority queue)允许用户根据对象对应的优先级类别来检索对象。

如何使用 queue 在 Python 中实现多线程编程,示例详见:https://www.tutorialspoint.com/python3/python_multithreading.htm。

__repr__

在 Python 中定义一个类别或对象时,以「官方」方式将对象表示为字符串很有用。例如:

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

sh

Python 是一种伟大的脚本语言,不过有时使用标准 os 和 subprocess 库会有点棘手。

sh 库提供了一种不错的替代方案。

sh 库:http://amoffat.github.io/sh/

该库允许用户像使用普通函数一样调用任意程序,这对自动化工作流和任务非常有用。

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

类型提示(Type hints)

Python 是动态语言。在定义变量、函数、类别等时无需指定数据类型。

这有利于缩短开发周期。但是,简单的类型错误(typing issue)导致的运行时错误真的太烦了。

从 Python 3.5 版本开始,用户可以选择在定义函数时开启类型提示

python使用中那些神奇的技巧你用过吗?代码技巧难得,收藏不谢!

尽管非强制,但类型注释可以使代码更易理解。

它们还允许你在运行之前使用类型检查工具捕捉 TypeError。在进行大型复杂项目时执行此类操作是值得的。

uuid

生成通用唯一标识符(Universally Unique ID,UUID)的一种快速简单方法就是使用 Python 标准库的 uuid 模块。

uuid 模块:https://docs.python.org/3/library/uuid.html

import uuid
user_id = uuid.uuid4()
print(user_id)

这创建了一个随机化后的 128 比特数字,该数字几乎必然是唯一的。

事实上,可以生成 2¹²²可能的 UUID。这个数字超过了 5,000,000。

在给定集合中找出重复数字的可能性极低。即使有一万亿 UUID,重复数字存在的概率也远远低于十亿分之一。

虚拟环境(Virtual environment)

这可能是 Python 中我最喜欢的事物了。

你可能同时处理多个 Python 项目。不幸的是,有时候两个项目依赖于相同依赖项的不同版本。那你要安装哪个版本呢?

幸运的是,Python 支持虚拟环境,这使得用户能够充分利用两种环境。见下列行:

python -m venv my-project
source my-project/bin/activate
pip install all-the-modules 

现在你在一台机器上具备独立的多个 Python 版本了。问题解决

wikipedia

Wikipedia 拥有一个很棒的 API,允许用户以编程方式访问巨大体量的免费知识和信息。

wikipedia 模块使得访问该 API 非常便捷。

Wikipedia 模块:https://wikipedia.readthedocs.io/en/latest/quickstart.html

import wikipedia
result = wikipedia.page('freeCodeCamp')
print(result.summary)
for link in result.links:
 print(link)

和真实的维基百科网站类似,该模块支持多种语言、页面消歧、随机页面检索,甚至还具备 donate() 方法

xkcd

humour 是 Python 语言的一个关键特征,其名称来自英国喜剧片《蒙提·派森的飞行马戏团》(Monty Python and the Flying Circus)。Python 的很多官方文档引用了该喜剧片最著名的剧情。

感并不限于文档。试着运行下列行:

import antigravity

将打开 xkcd 画的 Python 漫画。不要改变这一点,Python。不要改变。

YAML

YAML 代表 『YAML Ain』t MarkuP Language』。它是一种数据格式语言,是 JSON 的超集。

与 JSON 不同,它可以存储更复杂的对象并引用自己的元素。你还可以编写注释,使其尤其适用于编写配置文件

PyYAML 模块(https://pyyaml.org/wiki/PyYAMLDocumentation)可以让你在 Python 中使用 YAML。安装:

$ pip install pyyaml

然后导入到项目中:

import yaml

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

zip

给你支最后一招,非常酷。还在用两个列表来组成一部词典吗?

keys = ['a','b','c']
vals = [1,2,3]
zipped = dict(zip(keys,vals))

zip() 内置函数使用多个可迭代对象作为输入并返回元组列表。每个元组按位置索引对输入对象的元素进行分组。

你也可以通过调用*zip() 来「解压」对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我最近重新拾起了计算机视觉,借助Python的opencv还有face_recognition库写了个简单的图像识别demo,额外定制了一些内容,原本想打包成exe然后发给朋友,不过在这当中遇到了许多小问题,都解决了,记录一下踩过的坑。 1、Pyinstaller打包过程当中出现warning,跟d
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体操作如下图: 结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3,
记得大一学Python的时候,有一个题目是判断一个数是否是复数。当时觉得比较复杂不好写,就琢磨了一个偷懒的好办法,用异常处理的手段便可以大大程度帮助你简短代码(偷懒)。以下是判断整数和复数的两段小代码: 相信看到这里,你也有所顿悟,能拓展出更多有意思的方法~
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic histogram2. 数据分布与密度信息显示 Control rug and density on seaborn histogram3. 带箱形图的直方图 Histogram with a boxplot on t
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic violinplot2. 小提琴图样式自定义 Custom seaborn violinplot3. 小提琴图颜色自定义 Control color of seaborn violinplot4. 分组小提琴图 Group
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic density plot2. 核密度图的区间控制 Control bandwidth of density plot3. 多个变量的核密度图绘制 Density plot of several variables4. 边
首先 import tensorflow as tf tf.argmax(tenso,n)函数会返回tensor中参数指定的维度中的最大值的索引或者向量。当tensor为矩阵返回向量,tensor为向量返回索引号。其中n表示具体参数的维度。 以实际例子为说明: import tensorflow a
seaborn学习笔记章节 seaborn是一个基于matplotlib的Python数据可视化库。seaborn是matplotlib的高级封装,可以绘制有吸引力且信息丰富的统计图形。相对于matplotlib,seaborn语法更简洁,两者关系类似于numpy和pandas之间的关系,seabo
Python ConfigParser教程显示了如何使用ConfigParser在Python中使用配置文件。 文章目录 1 介绍1.1 Python ConfigParser读取文件1.2 Python ConfigParser中的节1.3 Python ConfigParser从字符串中读取数据
1. 处理Excel 电子表格笔记(第12章)(代码下载) 本文主要介绍openpyxl 的2.5.12版处理excel电子表格,原书是2.1.4 版,OpenPyXL 团队会经常发布新版本。不过不用担心,新版本应该在相当长的时间内向后兼容。如果你有新版本,想看看它提供了什么新功能,可以查看Open
1. 发送电子邮件和短信笔记(第16章)(代码下载) 1.1 发送电子邮件 简单邮件传输协议(SMTP)是用于发送电子邮件的协议。SMTP 规定电子邮件应该如何格式化、加密、在邮件服务器之间传递,以及在你点击发送后,计算机要处理的所有其他细节。。但是,你并不需要知道这些技术细节,因为Python 的
文章目录 12 绘图实例(4) Drawing example(4)1. Scatterplot with varying point sizes and hues(relplot)2. Scatterplot with categorical variables(swarmplot)3. Scat
文章目录 10 绘图实例(2) Drawing example(2)1. Grouped violinplots with split violins(violinplot)2. Annotated heatmaps(heatmap)3. Hexbin plot with marginal dist
文章目录 9 绘图实例(1) Drawing example(1)1. Anscombe’s quartet(lmplot)2. Color palette choices(barplot)3. Different cubehelix palettes(kdeplot)4. Distribution
Python装饰器教程展示了如何在Python中使用装饰器基本功能。 文章目录 1 使用教程1.1 Python装饰器简单示例1.2 带@符号的Python装饰器1.3 用参数修饰函数1.4 Python装饰器修改数据1.5 Python多层装饰器1.6 Python装饰器计时示例 2 参考 1 使
1. 用GUI 自动化控制键盘和鼠标第18章 (代码下载) pyautogui模块可以向Windows、OS X 和Linux 发送虚拟按键和鼠标点击。根据使用的操作系统,在安装pyautogui之前,可能需要安装一些其他模块。 Windows: 不需要安装其他模块。OS X: sudo pip3
文章目录 生成文件目录结构多图合并找出文件夹中相似图像 生成文件目录结构 生成文件夹或文件的目录结构,并保存结果。可选是否滤除目录,特定文件以及可以设定最大查找文件结构深度。效果如下: root:[z:/] |--a.py |--image | |--cat1.jpg | |--cat2.jpg |
文章目录 VENN DIAGRAM(维恩图)1. 具有2个分组的基本的维恩图 Venn diagram with 2 groups2. 具有3个组的基本维恩图 Venn diagram with 3 groups3. 自定义维恩图 Custom Venn diagram4. 精致的维恩图 Elabo
mxnet60分钟入门Gluon教程代码下载,适合做过深度学习的人使用。入门教程地址: https://beta.mxnet.io/guide/getting-started/crash-course/index.html mxnet安装方法:pip install mxnet 1 在mxnet中使
文章目录 1 安装2 快速入门2.1 基本用法2.2 输出图像格式2.3 图像style设置2.4 属性2.5 子图和聚类 3 实例4 如何进一步使用python graphviz Graphviz是一款能够自动排版的流程图绘图软件。python graphviz则是graphviz的python实