大家好,我是二次元程序员~这里,我将在本文中简单介绍一下15个好用好用到爆的Python实用技巧。如果你对其中的一个感兴趣或者更感兴趣,可以看看,希望对你有所帮助。01alloranyPython语言如此受欢迎的众多原因之一是因为它的可读性和表达力非常强。人们经常开玩笑说Python是可执行的伪代码。很难争论何时可以编写这样的代码。x=[True,True,False]ifany(x):print("AtleastoneTrue")ifall(x):print("AllareTrue")ifany(x)andnotall(x):print("AtleastoneTrueandoneFalse")02dir有没有想过如何查看Python对象的内部以查看它具有哪些属性?在命令行中键入:`dir()dir("HelloWorld")dir(dir)`当以交互方式运行Python并动态探索您正在使用的对象和模块时,这可能是一个非常有用的功能。在此处阅读有关功能的更多信息。03列表推导关于Python编程我最喜欢的事情之一是它的列表推导。这些表达式使编写非常流畅的代码变得容易,几乎就像自然语言一样。numbers=[1,2,3,4,5,6,7]evens=[xforxinnumbersifx%2is0]odds=[yforyinnumbersifynotinevens]cities=['London','Dublin','Oslo']defvisit(city):print("Welcometo"+city)forcityincities:visit(city)04pprintPython的默认打印函数完成了它的工作。但是,如果您尝试使用print函数打印出任何大型嵌套对象,结果将非常难看。标准库的漂亮打印模块pprint可以以易于阅读的格式打印出复杂的结构化对象。对于任何使用非平凡数据结构的Python开发人员来说,这都是必备的。importrequestsimportpprinturl='https://randomuser.me/api/?results=1'users=requests.get(url).json()pprint.pprint(users)05repr在Python中定义类或对象时,提供将此对象表示为字符串的“官方”方式很有用。例如:>>>file=open('file.txt','r')>>>print(file)这使得调试代码更容易。将其添加到您的类定义中,如下所示:classsomeClass:def__repr__(self):return""someInstance=someClass()#printprint(someInstance)06shPython是一种很棒的脚本语言。使用标准操作系统和子进程cook有时会让人头疼。SH库让您可以像调用普通函数一样调用任何程序——这对于自动化工作流程和任务非常有用。importshsh.pwd()sh.mkdir('new_folder')sh.touch('new_file.txt')sh.whoami()sh.echo('Thisisgreat!')07类型提示Python是一种动态类型语言。在定义变量、函数、类等时不需要指定数据类型。这样可以缩短开发时间。但是,没有什么比简单地输入问题导致的运行时错误更烦人的了。从Python3.5开始,您可以选择在定义函数时提供类型提示。defaddTwo(x:Int)->Int:returnx+2您还可以定义类型别名。从输入importListVector=List[float]Matrix=List[Vector]defaddMatrix(a:Matrix,b:Matrix)->Matrix:result=[]fori,rowinenumerate(a):result_row=[]forj,colinenumerate(row):result_row+=[a[i][j]+b[i][j]]结果+=[result_row]returnresultx=[[1.0,0.0],[0.0,1.0]]y=[[2.0,1.0],[0.0,-2.0]]z=addMatrix(x,y)虽然不是强制性的,但类型注释可以让你的代码更容易理解。它们还允许您使用类型检查工具在运行它们之前捕获那些杂散的TypeError。如果您正在处理大型、复杂的项目,这将非常有用!08uuid通过Python标准库的uuid模块快速简便地生成通用唯一ID(或“UUID”)。importuuiduser_id=uuid.uuid4()print(user_id)这将创建一个几乎可以保证唯一的随机128位数字。事实上,可以生成超过2122个可能的UUID。但是,超过五位小数(或5,000,000,000,000,000,000,000,000,000,000,000,000)。在给定集中找到重复项的概率极低。即使有1万亿个UUID,重复的可能性也远低于十亿分之一。09wikipedia维基百科有一个很棒的AP??I,它允许用户以编程方式访问无可匹敌且完全免费的知识和信息。wikipedia模块使得访问API非常方便。importwikipediaresult=wikipedia.page('freeCodeCamp')print(result.summary)forlinkinresult.links:print(link)和真实站点一样,这个模块提供多语言支持,页面消歧,随机页面检索,甚至还有还有一个donate()方法。10xkcd幽默是Python语言的一个重要特征,以英国喜剧小品节目PythonFlyingCircus命名。Python的大部分官方文档都引用了该节目最著名的草图。不过,Python幽默并不局限于文档。尝试运行以下函数:importantigravity11zipFinale也是一个很棒的模块。你有没有遇到过需要从两个列表中形成一个字典?keys=['a','b','c']vals=[1,2,3]zipped=dict(zip(keys,vals))zip()内置函数接受一个可迭代对象数组,并返回元组列表。每个元组按位置索引对输入对象的元素进行分组。您还可以通过调用*zip()来“解压缩”一个对象。12Emojiemoji是日本无线通信中使用的一种视觉情感符号。它画图,文字指人物。它可以用来表示多种表情,比如笑脸代表笑,蛋糕代表食物。在中国大陆,emoji通常被称为“小黄脸”,或者简称为emoji。#安装模块pipinstallemoji#试试fromemojiimportemojizeprint(emojize(":thumbs_up:"))13howdoi使用Terminal终端编程的时候,遇到问题会在StackOverflow上搜索答案,会返回到终端并继续编程。这时候,有时候你不记得你之前找到的解决方案了。这时候你需要重新回顾一下StackOverflow,又不想离开终端。那么你需要用到这个好用的命令行工具howdoi。pipinstallhowdoi有问题可以问它,它会尽力回复。howdoiverticalaligncsshowdoiforloopinjavahowdoiundocommitsingit但要小心-它会重新生成从StackOverflow上的最佳答案中获取的代码。它可能并不总是提供最有用的信息...howdoiexitvim14JediJedi库是一个自动完成和代码分析库。它使编写代码更快、更高效。除非您正在开发自己的IDE,否则您可能会对使用Jedi作为编辑器插件感兴趣。幸运的是,这已经有可用的负载了!15**kwargs学习任何语言都有很多里程碑。使用Python并理解神秘的**kwargs语法可能算作一个重要的里程碑。字典对象前面的双星号**kwargs允许您将该字典的内容作为命名参数传递给函数。字典的键是参数名,值是传递给函数的值。你甚至不需要称它为kwargs!dictionary={"a":1,"b":2}defsomeFunction(a,b):print(a+b)return#它们做同样的事情:someFunction(**dictionary)someFunction(a=1,b=2)当您想编写可以处理未预定义的命名参数的函数时,这很有用。最后,Python是一种非常多样化且发展良好的语言,因此肯定有许多我没有考虑过的特性。想了解更多python模块的可以点赞关注