分享15 超级好用得 Python 实用技巧

 更新时间:2021年12月21日 11:31:34   作者:迟业  
这篇文章主要分享了15 超级好用得 Python 实用技巧,如果你对其中一个或多个感兴趣,可以参考一下,希望对你能有所帮助

01 all or any

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

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

x = [True, True, False]
if any(x):
    print("至少有一个True")
if all(x):
    print("全是True")
if any(x) and not all(x):
    print("至少一个True和一个False")


02 dir

有没有想过如何查看 Python 对象内部查看它具有哪些属性?

在命令行中输入:

dir() 
dir("Hello World") 
dir(dir)


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

03 列表(list)推导式

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

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

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']

def visit(city):
    print("Welcome to "+city)
    
for city in cities:
    visit(city)


04 pprint

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

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

import requests
import pprint
url = 'https://randomuser.me/api/?results=1'
users = requests.get(url).json()
pprint.pprint(users)


05 repr

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

例如:

>>> file = open('file.txt', 'r') 
>>> print(file) 
<open file 'file.txt', mode 'r' at 0x10d30aaf0>


这使得调试代码更加容易。将其添加到你的类定义中,如下所示:

class someClass: 
    def __repr__(self): 
        return "<some description here>"
someInstance = someClass()
# 打印 <some description here>
print(someInstance)


06 sh

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

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

import sh
sh.pwd()
sh.mkdir('new_folder')
sh.touch('new_file.txt')
sh.whoami()
sh.echo('This is great!')


07 Type hints

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

Python 3.5开始,你可以选择在定义函数时提供类型提示。

def addTwo(x : Int) -> Int:
    return x + 2


我们还可以定义类型别名。

from typing import List
Vector = List[float]
Matrix = List[Vector]
def addMatrix(a : Matrix, b : Matrix) -> Matrix:
  result = []
  for i,row in enumerate(a):
    result_row =[]
    for j, col in enumerate(row):
      result_row += [a[i][j] + b[i][j]]
    result += [result_row]
  return result
x = [[1.0, 0.0], [0.0, 1.0]]
y = [[2.0, 1.0], [0.0, -2.0]]
z = addMatrix(x, y)


尽管不是强制性的,但类型注释可以使你的代码更易于理解。

它们还允许你使用类型检查工具,在运行前捕获那些杂散的 TypeError。如果你正在处理大型、复杂的项目,这是很有用的!

08 uuid

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

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


这将创建一个随机的 128 位数字,该数字几乎肯定是唯一的。事实上,可以生成超过 2¹²² 种可能的 UUID。不过超过了五个十进制 (或 5,000,000,000,000,000,000,000,000,000,000,000,000)。

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

09 wikipedia

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

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


和真实站点一样,该模块提供了多语言支持、页面消歧、随机页面检索,甚至还有一个donate()方法。

10 xkcd

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

import antigravity


11 zip

压轴出场的也是很棒的一个模块。你曾经遇到过需要从两个列表中形成字典吗?

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


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

你还可以通过调用对象来“解压缩”对象*zip()。

12 emoji

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

# 安装模块
pip install emoji
# 做个尝试
from emoji import emojize
print(emojize(":thumbs_up:"))


13 howdoi

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

pip install howdoi


无论你有什么问题,都可以问它,它会尽力回复。

howdoi vertical align css
howdoi for loop in java
howdoi undo commits in git


但请注意——它会重生 StackOverflow 的最佳答案中抓取代码。它可能并不总是提供最有用的信息......

howdoi exit vim


14 Jedi

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

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

15 **kwargs

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

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

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

dictionary = {"a": 1, "b": 2}
def someFunction(a, b):
    print(a + b)
    return
# 这些做同样的事情:
someFunction(**dictionary)
someFunction(a=1, b=2)


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

最后:

Python 是一种非常多样化且发展良好的语言,因此肯定会有许多我没有考虑过的功能。如果你想了解更多的python模块,可以点个赞和关注哦

到此这篇关于分享15 超级好用得 Python 实用技巧的文章就介绍到这了,更多相关 Python 实用技巧内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用定时调度任务的方式

    Python使用定时调度任务的方式

    Python 有几种方法可以定时调度一个任务,这就是我们将在本文中学习的内容。接下俩下边将给大家介绍5种Python使用定时调度任务方式,需要的朋友可以参考下面文章内容吧
    2021-09-09
  • Python-split()函数实例用法讲解

    Python-split()函数实例用法讲解

    在本篇文章里小编给大家整理的是一篇关于Python-split()函数实例用法讲解,有兴趣的朋友们可以学习下。
    2020-12-12
  • Python实现定时任务利器之apscheduler使用详解

    Python实现定时任务利器之apscheduler使用详解

    在Python中,还可以用第三方包来管理定时任务,比如celery、apscheduler。相对来说apscheduler使用起来更简单一些,这里来介绍一下apscheduler的使用方法
    2022-10-10
  • Python实现单向链表

    Python实现单向链表

    这篇文章主要为大家详细介绍了Python实现单向链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • python——全排列数的生成方式

    python——全排列数的生成方式

    今天小编就为大家分享一篇python——全排列数的生成方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • django配置使用asgi的实现步骤

    django配置使用asgi的实现步骤

    本文主要介绍了django配置使用asgi的实现步骤,支持 ASGI 协议能处理传统HTTP请求,也能支持实时WebSocket通信,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • Python+wxPython实现文件内容搜索工具

    Python+wxPython实现文件内容搜索工具

    在本篇文章中,我们将介绍如何使用 wxPython 库创建一个简单的文件搜索工具,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-08-08
  • Python实现视频裁剪的示例代码

    Python实现视频裁剪的示例代码

    这篇文章主要介绍了如何通过Python实现视频裁剪,可以将视频按照自定义尺寸进行裁剪,文中的示例代码简洁易懂,感兴趣的可以了解一下
    2022-01-01
  • 为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)

    为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)

    这篇文章主要介绍了为何人工智能(AI)首选Python,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Python爬虫实战JS逆向AES逆向加密爬取

    Python爬虫实战JS逆向AES逆向加密爬取

    一个建筑行业的堂哥为了搞一些商业数据前前后后花了1w,辣条我半个小时就能解决的事情,这就是技术的魅力!声明:爬取是的公开数据
    2021-10-10

最新评论