揭开“女神的面纱”
揭开“女神的面纱”
我第一次接触到python还是在去年。
2017年,人工智能(AI:Artificial Intelligence)已经成为一种潮流,python随着这股潮流第一次走进了我的视野。作为人工智能的主流开发语言之一,python给我的第一个感觉就是——高大上。
出于生在互联网时代而产生的本能——搜索,我第一时间入手了python的相关信息。出乎我意料之外地,python不仅没有我想的那么高大上,还格外地“接地气”(“接地气”:python相较C少了许多繁琐的语法修饰,其简练的语法结构与其继承于ABC语言的教学特性让我们能更容易地把我们的认知与想法通过它表现出来)。光说不练假把式,下面我就分别用C语言和python来实现一个简单的排列算法作比较。
C程序源码:
main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下以三重循环的方式列出所有可能结果*/ for(j=1;j<5;j++) for(k=1;k<5;k++) { if(i!=k&&i!=j&&j!=k) /*确保排列的三位数互不相等*/ printf("%d,%d,%d\n",i,j,k); } }
python程序源码:
for i in range(1,5): #以下以三重循环来列出所有可能的结果 for j in range(1,5): for k in range (1,5): if(i!=j) and (i!=k) and (j!=k): #确保排列的三位数互不相等 print('%d%d%d' % (i,j,k))
从上面两份代码可以看出:
- python相对C少了主函数main()的声明
- python相对C少了对变量i,j,k的类型声明
- python的“与”逻辑“and”与C的“&&”相比更容易让人看懂
- python的for循环相对C的更加简洁,更加容易让人理解(初学C的for循环时真是被for()中三个语句的执行顺序与逻辑搞得晕头转向~^~)
- python采用缩进的方式来表现语句间的执行关系,而非C的“{}”,使整个代码例程看上去一目了然,清晰直观。
说了这么多,其实我只是想表达:python真没我初想的那么“高高在上”,其实,它离我们很近、很近。
补充说明:针对python与c的比较,我并没有贬低c的想法,而是单纯在忽略执行效率的情况下,突出python的“平易近人”。而且,就算我说破嘴皮子其实也不能把python说的比c更加伟大多少,毕竟,python的编译器都是用c写的,没有c的话,真不知道python现在会在哪。就像那句话说的:每个成功男人的背后都站着一个伟大的女人。