‘壹’ 独家:国外开发者谈为何放弃PHP而改用Python
借助本文,作者与其说是解释了他做出这种选择的原因,不如说是他对PHP和Python两种语言的性能进行了比较。以下是作者的原文翻译:我之所以放弃PHP,原因首先是语言。PHP实际上不是一种语言,而是一种巨大的插件结构,以一种高层的形式来展示低层的库。而大部分开发者使用的语言实际上是对C功能 (curl, mysql, gd, etc.)的包装,通常情况下它们的库展示得很简单。因而这导致了PHP的API不一致。PHP语言的第二个问题是语言的管理问题。PHP语言实际上是由委员会来设计的,而且没有人来制定任何共识性的标准。PEAR有自己的标准,PHP有自己的标准,这导致SPL classes更具Java风格,而PEAR却截然不同。从事PHP开发11年来,我认识了很多PHP领域的专家级开发者,它们对PHP也有很多看法。除了上文提到的委员会问题以及标准混乱问题之外,由于PHP的使用范围非常广,向后的不兼容对代码造成了很大的破坏。还要提到的一点是PHP缺乏很多现代语言的特性。现在再来说说Python:Python语言的创建方法几乎与PHP的完全相反。首先,Python是由Benevolent Dictator和Guido van Rossum领导的,语言的开发由单一的人员主导,因此它的开发、管理以及长期运营会保持很好的连续性。Guido和Python的核心开发者通过PEP创建标准,而且通过公共接口展示标准是如何创建的。而且,Guido如果想到的语言特性不够好,也不会出现在语言层中(如没有++运算符,而且比较符中没有分配)。延续性的特点也延伸到了整个Python社区,所以你很难发现不同项目中的Python截然不同。我最喜欢的Python的一个特点就是它的清晰。当打开Python中的一个文件的时候,我会清楚地知道里面大概有什么样子的代码,联想到很多次我被PHP的这一点搞得焦头烂额,我觉得这个特性非常有用。总之,Python的系统级特性非常不错。Python另外一个很棒的特性是直白性。需要namespace(命名空间)?文件的名字就是命名空间;需要模块?只需要用一个__init__.py文件代替;需要重命名功能?只需要new_func = old_func。
‘贰’ 响应速度快!这些企业将推出黑科技“抗疫车型”!
一场疫情的突如其来,让大家“被困”一个多月。从坏处上讲,此次疫情带来的影响是方方面面,且各行各业都受到了冲击的。但是,从积极的方面去考虑,经过此次疫情,中国实现了上下一心,每个人都开始重视起防护知识的普及,对家庭防护的意识也更加高。
长远来看,防疫未必会成为汽车宣传的重点。但就如同当年PM2.5的危害性被普及之后,如今车辆开始逐渐普及PM2.5过滤一般,可以预见的是类似的卖点将会逐渐出现在车辆身上。再者从另一个角度出发,或许我们未必真的需要一辆可以“防疫”的车,但是我们绝不会拒绝产品的健康度变得更高不是吗?
(图片来源网络,侵删)
本文来源于汽车之家车家号作者,不代表汽车之家的观点立场。
‘叁’ 如何做一个更好的Python开发者
1. 选择内建函数:
你可以使用Python写高效的代码,但是你却很难避免用到内建函数(用C语言完成的)。点击这里察看。这写内建函数非常快。
2. 使用join()函数将大量的字符串连起来:
你能使用符号“+”将几个字符串结合起来。因为字符串是不可改变的,每个涉及到“+”的操作都会创建一个新的字符串,同时拷贝旧字符串的内容。一种应用频度非常高的惯用语法是利用Python的数组模式修改单个字符;接着就是使用join()函数再创建你最终的字符串。
?
1
2
3
#This is good to glue a large number of strings
for chunk in input():
my_string.join(chunk)
3. 在交换变量值中使用多重赋值:
这种方式在Python中是非常快捷的:
?
1
x, y = y, x
而下面这种方式要慢很多:
?
1
2
3
temp = x
x = y
y = temp
4. 尽可能使用临时变量:
Python检索临时变量的速度要比检索全局变量快。所以,尽量避免使用“global”这个关键词。
5. 尽可能的使用“in”:
一般在检查成员关系时,会用到关键词“in”。这种方式很简洁,也很快捷。
?
1
2
for key in sequence:
print "found"
6. 通过懒惰方式的importing提高速度:
将“import”语句移到函数中去,这样你就只会在用到的时候import某些内容。也就是说,如果有些模块你不是马上用到,你就可以晚些import它们。例如,在启动的时候,你可以先不import一长列的模块来提高你代码的速度。这个技术没有加强全局的效率。但是它帮助你将导入模块的时间更加均匀的分布在代码中。
7. 在无限循环中使用“while 1”:
有时候你会在你的代码中使用到无限循环。(例如,一个监听socket)虽然“while True”实现了同样的功能,但是,“while 1”是一个单独的跳操作。你可以将这个trick用在你高效的Python代码中。
?
1
2
3
4
while 1:
#do stuff, faster with while 1
while True:
#do stuff, slower with while True
8. 使用list内涵:
在Python2.0之后,你就可以使用list内涵代替很多“for”和“while”块。list内涵更快的原因在于,在循环的过程中,Python解释器能最优的发现一个可预测的模式。一方面,list内涵更加易读(函数编程中),另一方面,它为你节约了一个额外的计数变量。例如,我们可以在一行内得到1到10之间的偶数数值:
?
1
2
3
4
5
6
7
8
9
10
#the good way to iterate a range
evens = [i fo i in range(10) if i % 2 == 0]
[0, 2, 4, 6, 8]
#the following is not so Pythonic
i = 0
evens = []
while i < 10:
if i % 2 == 0: evens.append(i)
i += 1
[0, 2, 4, 6, 8]
9. 在每个长序列中使用xrange():
这样做可以为你节约大量的系统内存空间,因为xrange()每次只在一个序列中产生一个整数元素。和range()相反,它给出你整个列表,而这在整体的循环中是不必要的。
10. 根据需求,使用Python生成器得到相应的数值:
这种做法同样可以节约内存空间,提高代码效率。如果你在传输视频的数据流,你能send一个chunk的字节,而不是整个数据流。例如,
?
1
2
3
4
5
6
7
8
9
chunk = (1000 * i for i in xrange(1000))
chunk
<generator object <genexpr> at 0x7f65d90dcaa0>
chunk.next()
0
chunk.next()
1000
chunk.next()
2000
‘肆’ 那些很牛的“黑科技”,防疫抗疫都做了啥
大数据+网格方法成为了数据网,可以对可疑病人进行分析。
电信大数据在抗击流行病中也发挥了基本的支持作用,通过对武汉和湖北人员外流的大数据分析,三大运营商已经发布了有关地区疫情的预警。假期后返程高峰期到来时,工业与三大电信运营商开始对重点城市的人员流动进行分析,为主要城市的防疫提供参考如北京和上海。网络地图迁移大数据平台最近为城市内旅行强度指数添加了特定值,用户可以直接查看所选城市的城市内旅行强度的索引结果,以更好地了解城市中人口流动的趋势并为用户完成。为合理的出行决策提供合理的参考,指导有关部门和机构合理配置人力资源。
‘伍’ 开着唐新能源去走走——抗疫的历程中的一次放风之旅!
带我回家
一位可靠的朋友,一名忠实的伙伴,又或者,是我亲密的家人。当疫情逐渐散去那一天,你一定一定要带我再去撒欢,陪着我,看遍祖国的大好河山。Theend,butnottheending......
‘陆’ 在抗击疫情上,北汽福田都有哪些行动为什么被称为“抗疫救援急先锋”
近期疫情在河北及全国多个省市出现反弹,1月20日10辆北汽集团旗下的北汽福田图雅诺特专负压救护车第一时间驰援河北,肩负起接送转运新冠肺炎病患的重要职责,为抗疫一线的病例转运提供了非常大的安全防护保障。
北汽福田图雅诺特专负压救护车之所以每次都肯准狠地冲锋在抗疫第一线,主要是因为它的过硬的技术实力。北汽福田图雅诺特专负压救护车在配备负压隔离舱的基础上,还具有创新的负压净化系统、强力的吸排风设备,既可保证新鲜空气流入后舱,又能严格控制后舱的负压度,确保病毒污染过的空气或气溶胶不会随意泄漏,实现“安全隔离”的最终目的,拥有十足的“黑科技”。
北汽福田还被称为“抗疫救援急先锋”,因为北汽福田不仅有多次冲锋陷阵的抗疫“黑科技”产品,还有丰富的战疫经验。2020年初的疫情防控阻击战中,北汽福田图雅诺特专负压救护车就第一时间发车湖北,在湖北连续奋战43个日夜,展开了生死时速,与死神赛跑的生命争夺战,累计转运病患近3万人次。不仅如此,疫情防控方面,北汽集团与所属企业、相关方发起联合捐赠,北汽福田和福建奔驰第一时间向全国多个重点疫区发运负压救护车,北汽福田、北汽昌河生产医疗废物转运车、药品专用冷藏车、危化品运输车等特需车辆,参与了抗疫行动。经历过与湖北疫情、新疆疫情、东北抗疫战争,面对此次年底河北疫情的突然爆发,北汽福田再次临危受命,快速高效和积极主动的抗疫行动彰显国企担当。
此外,北汽集团和北汽福田还持续助力全球抗疫:北汽福田为缅甸提供了2台负压救护车、4辆微卡改装的移动核酸检测车;为菲律宾提供该国首批负压救护车;向厄瓜多爾尔尔、巴基斯坦、尼日尔爾利亚、缅甸、冈比亚等捐赠、提供10余辆北汽福田负压救护车及普通救护车;在智利首都圣地亚哥投入使用北汽福田欧辉客车改制的核酸检测车;为墨西哥、哥伦比亚、泰国等带去北汽福田中重卡改装的消毒雾炮车。北汽福田以抗疫“急先锋”之姿获得国际国内社会的高度赞扬。
‘柒’ AI抗疫系统是由谁研发的,研发的意义是什么
在疫情爆发的这段期间,人们耳边不断划过“运用AI仅用14天便建成病毒基因组测序”“AI医疗服务机器人”等“抗疫黑科技”的热门消息,那么,AI技术在抗疫中到底起到了多大作用呢?
AI抗疫系统对于全国抗疫甚至全球抗疫都具有十分重要的意义!我们一定要坚持支持科技的发展,相信人工智能在未来的抗疫事业中能绽放出更绚丽的光彩。
智能抗疫,我们势在必行,为我国默默在背后付出的科技抗疫英雄们打call!中国加油!
‘捌’ 疫情当下,抗疫离不开每个人的努力,你在疫情期间见过哪些暖心的事
‘玖’ 2021年,抗疫一线有哪些难忘的瞬间
在这2021年的最后一天,看到这个题目,让我想到了这一年里,很多抗疫难忘瞬间。其中有全员严寒、酷暑排队核酸检测场景,也有疫苗接种过程,所发生感人事迹,还有集中隔离人员,和家人遥相呼应场景。
如果没有新冠疫情,很多人的家庭、生活,应该还是一如既往,平静而又幸福。疫情爆发后,我们战疫已有两年多时间。在2021年这一年里,抗疫一线给我留下了这些难忘瞬间。
除了防疫工作人员辛苦之外,还有疫苗接种宣传工作人员,苦口婆心劝说居民接种新冠疫苗。众多疫情之下志愿者,也在尽各自能力,为疫情防控做贡献。很多志愿者,结束工作之后,直接累瘫的场景,令人印象深刻。