现在网络上有一句流行语“人生苦短,我用Python”。确实,Python确实在众多编程语言中算得上是闪亮的一颗星。今天我们就一起来说一说凭什么Python这么火。

首先,Python编写简单,适合初学者使用。先拿“Hello World”为例,我们来看一看各大语言都怎么输出“Hello World”

C/C++


int main(){
  cout<<"Hello World"<<endl;
  system("pause")
  return 0;
}


Java


public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello World");
  }
}


Ruby


#!/usr/bin/env ruby


puts "Hello World"


HTML


<html>
  <body>
    <p>
      Hello World
    </p>
  </body>
</html>
严格意义来说,HTML并不能与C、Java来比较。这里加入它只是为了对比


Python


print("Hello World")

与众多语言相比,Python只用一行就完成了Hello World的输出。可能有粉丝要说了:C、Java只不过是框架搭建用了多行代码,整体上和Python没什么差别。

也对。但是Python比C++或Java多出了很多实用的函数。我们拿获取列表最大值来举个例:

(列表为test_list,长度为10,最大值保存在变量maxs中)

C/C++


int main(){
  test_list[10] = {1,213,3451,123123,15123567,1,7,2345,1223,90}
  int maxs = 0
  for(int now = 0;now<=10;now++){
    if(test_list[now] > max){
      max = test_list[now]
    }
  }
}


Python


test_list = [1,213,3451,123123,15123567,1,7,2345,1223,90]
maxs = max(test_list)

是不是很震惊?同样的结果,Python只用两行,而C++却整整用了九行?

不仅如此,Python还有例如sort快速排序列表;len获取列表长度。更重要的是,Python有一个最重要的

字典

如果你问我“Python最好是哪里?”我会毫不犹豫的回答“当然是字典啊”

为什么字典如此好用?

可能有挑事的粉丝说了,字典有什么,C++有二维数组,听起来都比你们的字典霸气!确实,C++有东西叫二维数组,而且和Python的字典也差不多。但是C++有一个非常大的缺点,就是C++的二维数组必须提前声明列表长度,否则报错。这也是作者更偏向于Python的原因。你可能看到了,在前面获取列表最大值的时候,C++列表前面有一个[10],这就是在向解释器声明列表长度。如果在此处不添加声明,C++就无法从内存中分配位置,后面的代码就无意义了。Python的各种变量都不用不能提前声明长度,这让用Python写代码方便了许多。试想一下,你在C++中声明列表之前,还得花上几分钟甚至几个小时来想一想应该申请多长。Python的字典不但好创建,而且可以嵌套。就是说一个字典中可以加上另一个字典:

my_dict = {"dict key":
  {"dict_key":
    "dict_value","dict_key":
      {"dict_key":
        "dict_value"}}}

(此处换行是为了方便观看)

C++的另一个缺点是:它的列表必须是同一类型。

这听上去没什么。但是你在C++中每创建一个变量都要想想它应该是什么类型。

C++的类型非常之多,作者认为如果你的代码不够占领你全部的内存,是根本不需要的:

基本类型:

    整形(整数):

        short 短整型

        int 整形

        long 长整型

        long long 超长整形

    浮点型(小数):

        float 单精度浮点型

        double 双精度浮点型

        long double 长双精度型

        long long double 超长双精度型

    布尔型(对或错及所有代码):

        true 对

        false 错

        ……………… 所有代码

    字符型:

        char 单字符

        string 普通字符,需要导入string包

构造类型(变量及函数):

    enum 枚举类型

    ……………… 数组类型(列表)

    struct 结构体类型(自定义)

    union 共用体类型

    class 类类型

指针型(指向内存中的某一位置,十六进制)

void 空类型(NULL)

怎么样,晕了吗?如果你要学C++,就必须将这些全都背下来。Python呢?

这里我们以Python3为例:

布尔型:

    假:

        False 错误的

        None 空的,这里定义为假

    真:

        True 真的

数字型:

    int 整形

    float 浮点型

    complex 复数 有关复数的介绍可参考:

https://baike.baidu.com/item/%E5%A4%8D%E6%95%B0/254365?fr=aladdin

序列型:

    list 列表

    tuple 元组,类似于不可变列表

    range 范围,例如range(1,100)表示1到99之间所有整数

字符串:

    str 表示所有字符串

二进制:

    bytes 单字节

    bytearray 类似于bytes

    memoryview 内存空间

集合类型(这里不做解释,请参考Python官方文档):

    set

    frozentset

映射类型:

    dict 字典

好吧,同样很多,但相对C++来说,有用的多了不少。

如果你想更多的了解Python,可以去Python官方文档看看。地址:

https://docs.python.org/3/

或者你想下载Python解释器来使用Python,可以到Python官网下载。地址:

https://www.python.org/

好了,今天"为什么说'人生苦短,我用Python'"的文章就结束了。