C++、Java大神Bruce Eckel几个月前在中国之行中,毫不掩饰的表达了对Python的偏爱:“坦白来讲,我最喜欢的语言是Python。每当我有问题需要被解决的时候我发现Python是最快可以给我结果的一个语言,所以我很喜欢,很享受Python。”
有数据显示,2017年在雇主发布的职位说明中,Python技能需求增速达到174%,居于首位。
那作为通用编程语言,Python为何更胜一筹?
近年来,Python 更是横扫了各大语言排行榜。在世界脚本语言排行榜中,Python 强势登顶;在 TIOBE 编程语言排行榜中,Python 地位也在逐月攀升,越来越受广大开发者的欢迎。对比长盛不衰的 Java、C、C++,后起之秀 Python 深受好评。
在 TIOBE 编程语言排行榜中,Python 也紧随 Java、C、之后,在开发者最喜爱的编程语言中位居第三名。
同样作为通用编程语言,不可避免要分出个一二三四来。那么 Java、C、C++ 以及 Python 比起来,谁能独领风骚?谁又略输一筹?
虽然目前来讲,Java 语言仍然傲视群雄,但是通过以上的对比可以发现,即使与 Java、C、C++ 这三个老牌语言相比,Python 也显得游刃有余,甚至隐隐有后来居上的意味。
所以,进入2018年之后,Python几乎成为编程语言界的“网红”,无论是使用人数还是受欢迎程度,都在各项榜单中飙升。5月,Python在PYPL指数榜中的超越Java,首次夺冠。
如果把PYPL编程语言人气指数的时间轴拉长,Python在近十几年的时间里,几乎一直都是“牛市”。
我们都知道Python容易入门且用途广泛,同时我们也可以用Python做一些意想不到的事情……这篇文章的目的在于帮助小伙伴们全面了解Python,仅此而已……
下面,我就来介绍下鲜为人知的一些Python语法:(这些代码玩玩就好,不要在线上写这样的代码,切记,切记.)
1、使用 lambda 表达式重写多行函数
众所周知 python 的 lambda 表达式不支持多行代码。但是可以模拟出多行代码的效果。
虽然看起来很奇怪,但是上面的函数可以使用下面的 lambda 表达式函数代替:
始终记着,永远别在生产环境写这样的代码 :)不然会被打死。
2、替换方法字节码
Python 阻止替换类实例中的方法,因为 python 给类实例中的方法赋予了只读属性:
但是可以在字节码的层面上进行替换:
注意! 这不仅对当前的实例有影响,而且对整个类都有影响(准确的说是与这个类绑定的函数)(译者注:此处应该是笔误,推测作者原意是:准确的说是与这个函数绑定的所有类),并且所有其他的实例也会受到影响:
3、三元运算符
现代的 python 提供了更简便的语法:
b if a else c
也可以通过下面的方式重写:
(a and [b] or [c])[0]
(b, c)[not a]
顺便说一下,下面的变体是错误的:
a and b or c
True and [] or [1] -> [1], but: [] if True else [1] -> []
4、通过列表推导式移除重复的元素.
让我们来把字符串 x = ‘tteesstt’ 转换成 ‘test’ 吧。
1、在原字符串中和上一个字符比较:
''.join(['' if i and j == x[i-1] else j for i,j in enumerate(x)])
2、把前一个字符保存到临时变量中:
3、在新字符串中和上一个字符比较:
[(not r.endswith(i) and [r for r in [r+i]], r)[-1] for r in [''] for i in x][-1]
4、通过 reduce 函数和 lambda 表达式:
reduce(lambda a, b: a if a.endswith(b) else a + b, x)
5、通过列表推导式获得斐波拉契数列
把中间值保存在列表中
把中间值保存到字典中:
通过 reduce 函数和 lambda 表达式:
速度最快的变体:
6、使用列表推导式产生死循环
[a.append(b) for a in [[None]] for b in a]
7、列表切片技巧
复制列表:
移除/替换 列表中的任意元素:
在列表的开头添加元素:
在列表的尾部添加元素:
反转列表:
8、让可变元素作为函数参数默认值
把可变对象作为函数参数的默认值是非常危险的一件事,并且在面试中有大量关于这方面棘手的面试问题。但这一点对于缓存机制非常有帮助。
阶乘函数:
2.斐波拉契数列:
总结:
Python由于语法简洁,功能强大,且在人工智能、大数据方面展现出效率优势,越来越受到欢迎。
Python把其他语言做了一个封装,调用其他语言做的包。很多的数据科学家其实是不希望学习过于复杂的编程语言的。把他们关于数据方面处理的智慧封装起来,通过Python来调用,这样会方便很多。这也是为什么Python这几年这么流行的原因。
人生苦短,我用Python。
人生苦短,你该好好学学Python了。
欢迎加入 51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ 群: 755431660