现在网络上有一句流行语“人生苦短,我用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官方文档看看。地址:
或者你想下载Python解释器来使用Python,可以到Python官网下载。地址:
好了,今天"为什么说'人生苦短,我用Python'"的文章就结束了。