文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

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 实用技巧内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯