一个不会写Python的前端学习者对Python的看法。

来源:互联网 发布:很有节奏感的网络歌曲 编辑:程序博客网 时间:2024/05/23 15:36

    昨天晚上无意在知乎上搜索了一下Python为什么这么慢,看了大神们的评论后,感受颇深,所以在空闲时间里就利用博客写一写自己的感受吧。虽然我不是Python开发者,也不怎么会写Python,但我还是很喜欢这门编程语言。

    最早了解Python是在一次百度搜索高级编程语言时,看到一位答主的回答才知道世界上还有一门叫Python的编程语言,然后就自己买了一本书,看了看,当然,本人天资不够聪颖,没能看进去,但这门语言却给我留下了很深刻的印象。可以这么说,在我有限的编程认知当中,Python是我见过的最优雅,最简洁、干净的编程语言。它在书写代码是毫不拖泥带水,就像人说话一样,你想写什么,就按着自己的意思写就行了。所以就有了后来那句在Python界流传甚广的话,Bruce Eckel说的,原话:“Life is short, you need Python”。这也难怪,很多用过Python的人都说,Python是给人设计的语言,而c和c++,还有Java,它们是给机器设计的语言。

   在这里,我又要班门弄斧一下了,无形装逼,最为致命大笑

在c或者c++,又或者是Java中,写一个九九乘法表,我相信就一般程序员而言,要完成这个乘法表,代码的书写量应该是在十多行到三十多行之间吧。这里我从别的地方截取了一个c++的九九乘法表代码,供参考:

#include <iostream>using namespace std; int main(){    int i,j;    for(i=1;i<=9;i++)    {         for(j=1;j<=i;j++)        {            cout<<j<<"*"<<i<<"="<<j*i<<" ";        }        cout<<endl;    }    return 0;}

那么我们来看看Python的呢:

print('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))

这使用Python3的语法书写的,在Python2中print后面不需要接(),但在Python3中被强制要求,这我很不解,或许是我最开始是学的Python2吧。希望大家别笑话我。

是不是感觉c++的书写很有层次感,每一句都有板有眼的,符合传统编程语言的书写思路。而Python给人的感觉就有点丧心病狂了,一条代码就解决问题。有点暴力了。当然这种书写方式对一个没有编程经验的人来说,理解它有点困难。

那最后一个要说的就是Python的速度慢的事了,这个由于我的编程经验有限,无法触及到那些需要高性能,高速度的领域,所以对这个感受不是很深。但网上的那些技术大牛们却对其慢的特性有很独特的认识,这说说我的理解,就是Python不是编译型语言,需要解释器来执行程序,所以就消耗了更多的时间和空间,由于其其特殊的变量机制,所以变量是个引入,而引入是需要花费时间的。当然大神们也想到了对策,在pypy里引入了JIT机制(即时编译器),是Python的运行速度大为提升,具体提升多小,小白我就不知道了,希望将来我能涉猎到它,去充分了解。再者,Python 具有垃圾回收和自动的内存管理功能,并且采用动态类型系统,会在运行时进行类型检查,这会不可避免地略微影响性能,使其不如静态类型(Java)或没有垃圾回收(C/C++)的语言。

最后我要说的就是,Python你再慢,但我仍然爱你。

0 0