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

Python的发展:

“人生苦短,我用 Python”,Python 的经典 slogan 讲究争分夺秒,自 20 世纪 90 年代初首次录入 TIOBE,Python 花了 10 年才首次进入指数前 10 名,随着它的不断应用与发展,Python 逐渐在网络安全与数据科学等领域大放异彩。

Python 最初是 Perl 的继承者,用于编写构建脚本,并且作为一种胶水语言,它被广泛用于连接各种软件组件。但随着不断应用与发展,Python 逐渐进入了其它领域,比如网络安全与数据科学。如今,在大型嵌入式系统中运行 Python 也变得非常普遍,并且随着人工智能与数据分析等领域的大热,Python 也得到了前所未有的高度关注,相信它也会保持向前。

目前在全球范围内它已经是大学的首选编程语言,同时也征服了工业界。越来越多人使用 Python,反映在 TIOBE 指数上就是它稳扎稳打地一步步向上爬,从前 10 到前 5,如今终于进入了前 3。

Python的必备技巧:

1、简洁的表达式

点评:Python因为简洁高效而出名,就是因为语法非常简单,而且内置了很多强大的数据结构:

比如我们可以大量用推导列表来生成很多简洁的代码

比如我们可以用if else组合,本来需要2-3行代码写的,一行搞定!

2、排序

忽略想起了一句台词,“有人的地方就有江湖”,那么有数组这样的数据结构一定涉及到排序,取最大值,取最小值。

点评:这个heapq库非常好用,尤其是我们在取一些列表的头部数据,比如最大几个,最小几个经常用到,很实用的一招!啥也不说了,赶紧背下来!

3、查询

排序和查询都是好基友,长的数据结构里面(字典,列表)里面我们一定会有查询,过滤的需求。有的时候,我们需要从一个很长的列表里面,找到某一个或者某一类的元素,怎么办,很简单,用高级函数filter :

1).用lambda配合filter过滤

点评:lambda是一个非常简洁的函数表达方式,短小精悍,加上配合filter一起使用,非常漂亮。比如我们通过 字符串里的startswith内置函数,非常方便的过滤出列表里面我们需要的数据!(Python3稍微改一下再filter之外再加一个list,不然生成的是迭代器地址)

点评:正则是一个非常不错的过滤方法,有的时候好的正则顶的上几十行代码,精通正则对玩数据分析,数据清洗是必需的技能!

4、碾平list

有的时候我们会遇到复杂的数据结构,比如列表里面套列表,层层嵌套,非常麻烦。可以碾平的方法:

传统方法

点评:这里面就是用递归来解决的,思路非常简单清晰,但是递归一定要有出口,设计的时候要注意。

另外还有两种高手的写法,理解起来比较复杂,这里就不过多说明,感兴趣的可以找一找。

5、带条件的推导列表

推导列表应该是我最喜欢的一种Pythonic方式,它的演变有很多手法,这几种都是非常常见的,多读几遍,背下来!

6、漂亮的添加字典的方法

设计数据结构的时候,字典是必须的!很多时候我们会用带下面的字典更新的方法,当然更好的是collections模块里面的defaultdict!

点评:dict.update还是比较平易近人的,这个dict(dict,**options)用法我第一次看到的时候也是楞了一些,什么鬼,现在见多了,也就习惯了!

Python的精选技巧:

1、all 或 any

Python 如此受欢迎,原因之一是因为它具有可读性和可表达性。

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

2、bashplotlib

你想在控制台(console)上绘制图形吗?

1$ pip install bashplotlib

这样你在控制台中就可以绘制图形了。

3、集合

Python 内置默认的数据类型,但有时它们的使用效果会不尽如人意。

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

from collections import OrderedDict, Counter

x = OrderedDict(a=1, b=2, c=3)

y = Counter("Hello World!")

4、dir

你是否曾经有过深入 Python 对象内部并且观察它具备哪些属性的想法呢?

输入下述命令行:

以交互式运行 Python 时,这是一个非常实用的特征,并且可以动态地搜索正在使用的对象和模块。

5、emoji

Python 包含 emoji 模块,在这里!

$ pip install emoji

别以为我不知道你会偷偷下载...

6、原地交换两个数字

Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例:

x,y= 10,20print(x,y)x,y= y,xprint(x,y)#1 (10, 20)#2 (20, 10)

赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量和 。

一旦赋值完成,新的元组变成了未被引用状态并且被标记为可被垃圾回收,最终也完成了变量的交换。

7、from _future_import

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

不过别担心。_future_module 允许用户通过函数导入新版本 Python 的功能。这就像是时间旅行,或是奇异魔法之类......

from __future__ import print_function

print("Hello World!")

为什么不导入花括号呢?

8、geopy

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

$ pip install geopy

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

另外一个有用的功能是距离:它可以用你喜欢的度量单位计算出两个位置之间的距离。

9、链状比较操作符

比较操作符的聚合是另一个有时很方便的技巧:

n= 10result= 1< n< 20print(result)# Trueresult= 1> n<= 9print(result)# False

10、howdoi

受困于编程问题并且不记得之前看到过的解决方法?用户需要使用 StackOverflow ,但是不想离开终端?

那么需要使用这个非常使用的命令行工具 howdoi

$ pip install howdoi

无论你有什么问题,它都会帮你解答。

但是请注意,它会从 StackOverflow 的最高票答案中抓取代码,这意味着它的回答并不总是最有用的。

$ howdoi exit vim

11、inspect

Python 的 inspects 模块对于理解背后的原理是非常有帮助的。用户甚至可以在 inspect 模块上调用其方法!

下述代码示例使用

inspect.getsource()

来打印它的源代码。同时它也使用

inspect.getmodule()

来打印定义它的模块。

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

当然,除去这些简单的用途之外,inspect 模块对于理解代码的作用也非常有用。你也可以使用它来写自编文档代码。

12、交互环境下的 “_” 操作符

这是一个我们大多数人不知道的有用特性,在 Python 控制台,不论何时我们测试一个表达式或者调用一个方法,结果都会分配给一个临时变量: _(一个下划线)。

>>> 2+ 13>>> _3>>> print_3

13、List Comprehensions

关于 Python 编程,我最喜欢的事情之一是它的列表生成式(List Comprehensions),

这些表达式可以很容易编写出简洁的代码,读起来几乎就像自然语言一样。

14、Jedi

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

除非你正在开发自己的 IDE,否则你可能对使用 Jedi 作为编辑器插件最感兴趣。幸运的是,现在加载这个插件已经可以用了!不过,你可能已经用上Jedi 了。IPython 项目的代码自动完成功能就是使用Jedi来实现的。

15、map

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

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

16、**kwargs

在学习任何语言的过程中,都会遇到许多里程碑。使用Python,理解神秘的 **kwargs 语法可能就是其中之一。

dictionary 对象前面的双星号允许您将该 dictionary 的内容作为命名参数传递给函数。

dictionary 的键是参数名,值是传递给函数的值。你甚至不需要叫它 kwargs!

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

总结:

Python的小技巧还有很多,上面只是介绍了其中的一部分,入门容易精通难!在进阶的路上,有没有什么好的技巧和好的方法,就是不断总结,不断记笔记!尤其是好的用法,就像写作文一样,好的名言警句要多背诵一些,写作的时候,肚子里的墨水多了才能才思泉涌,写出更多的好代码。

欢迎加入  51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ 群: 755431660

软件测试中python实用技巧,精选22个Python实用技巧,秀技能必备这份技术列表!...相关推荐

  1. python背诵技巧_精选22个Python实用技巧,秀技能必备这份技术列表!

    被人工智能捧红的 Python 已是一种发展完善且非常多样化的语言,其中肯定有一些你尚未发现的功能.那么今天或许我能够让你学到一些新技巧. Python的发展: "人生苦短,我用 Pytho ...

  2. python最新技术开锁工具_精选26个Python实用技巧,想秀技能先Get这份技术列表!...

    原标题:精选26个Python实用技巧,想秀技能先Get这份技术列表! 出品 | AI科技大本营 本文整理了 26 个 Python 有用的技巧,将按照首字母从 A~Z 的顺序分享其中一些内容. al ...

  3. 精选 26 个 Python 实用技巧,想秀技能先 Get 这份技术列表!

    ↑ 点击上方[计算机视觉联盟]关注我们 Python 虽然是脚本语言,但是因为其易学,迅速成为科学家的工具,从而积累了大量的工具库.架构,人工智能涉及大量的数据科学,用 Python 是很自然的事.磨 ...

  4. 精选26个Python实用技巧,想秀技能先Get这份技术列表!

    作者 | Peter Gleeson 译者 | 婉清 编辑 | Jane 出品 | AI科技大本营 [导读]Python 虽然是脚本语言,但是因为其易学,迅速成为科学家的工具,从而积累了大量的工具库. ...

  5. 精选22个Pandas实用函数

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 今天小编又从26个字母中精选出22个Pandas常用的函数,将它们的使用方法简单介绍给大家,详细内容可以查看官网学习. ...

  6. 1元解锁 | Python万能代码模板 |10大必学实用技巧

    内容摘要 你要悄悄学 Python,然后惊艳所有人. 一听到 Python 或编程语言,你可能条件反射会觉得"很难".但今天的 Python 课程是个例外,不需要你懂计算机原理,也 ...

  7. Word中如何一键生成PPT,五个实用小技巧帮你工作效率翻倍

    Word作为我们常用的文档工具,帮我们大大提高了工作效率,但是对于一个新手小白来说,Word中的大部分技巧都难以快速掌握.但是我们可以掌握一些必备的实用技巧,来提高我们的工作效率,比如小编就为大家带来 ...

  8. 对于解决python中出现的OSError: [Errno 22] Invalid argument: ‘\u202aD‘ 的解决

    对于解决python中出现的OSError: [Errno 22] Invalid argument: '\u202aD' 的解决 ** 今天这导入数据集文件时有时正常运行,有时出现了OSError: ...

  9. 深度神经网络在Youtube推荐中的应用--开篇作之一--含部分实用技巧

    Deep Neural Networks for YouTube Recommendations Paul Covington, Jay Adams, Emre Sargin Google https ...

最新文章

  1. KVM、QEMU和KQemu的区别:
  2. ubuntu 源码安装nginx
  3. 网站 asp和php的用途,asp和php都有什么功能?
  4. IOS NSArray,NSDictionary
  5. 阻止事件冒泡——商品编辑
  6. 关于linux拨号上网的软件实现方案[原创]
  7. MySQL Replication主从复制环境下修改主库IP
  8. 【渝粤题库】广东开放大学 管理会计 形成性考核
  9. css定位、position与float同时使用的情况
  10. InfluxDB、grafana、collect部署监控(centos6.8)
  11. javaSE基础知识 知识点(一)
  12. 并查集之Wireless Network(一)
  13. 计算机网络实践项目(大学宿舍网络部署)
  14. Redis 客户端哪家强? Lettuce手下见真香!
  15. python简易版爬虫
  16. 魅族手机sim卡无显示无服务器,设备管理器无显示内容怎么处理?
  17. CentOS7.4安装教程
  18. 企业数字化办公利器——华为云桌面Workspace
  19. MATLAB中断点调试入门到进阶
  20. php echo webtitle,?php echo htmlspecialchars(stripslashes($rows['webtitle'])); ?

热门文章

  1. Python高级——多线程(threading)
  2. MongoDB高级——聚合
  3. 聚类算法应用场景实例十则
  4. 微信ASP.NET高级平台接口
  5. jQuery的DOM操作
  6. 逻辑回归、线性回归直观感受
  7. 傅里叶变换对噪声进行频谱分析
  8. Ubuntu16.04下tensorflow安装
  9. 扩展指令集--指令参考说明
  10. 计算机单元格的引用计算,计算机应用 单元格的引用 单元格的引用.pptx