C与Python,初学者应该如何选择

对于C和Python两种语言,初学者应该选择从那个开始入门?笔者认为在做出选择之前首先要对这两种语言有一个初步的了解。首先来说,C语言是一门通用的编程语言。之所以称其通用,是因为它能够做很多低级、底层的处理;同时它也有良好的跨平台性,C语言可以按照一定的标准在多种计算机平台上进行编译,包括嵌入式编程。而Python是一门面向对象的编程语言,这是它和C存在的一大区别;另一个区别是Python是一种解释型语言。在人们写好这种语言之后还需要有解释器进行翻译才可以在计算机上运行。但Python虽然从运行效率上与C语言相比较低,但Python有丰富的库,而且这些库很多是用C和C++写的。这就使得Python与C有一定的相通性,而且和C语言相比,Python的专长在于数据统计分析和人工智能编程。

总结一点,C更基础,Python更实用。

如果今后的研究方向是嵌入式,那么C语言可以作为主攻方向。对于从事编程工作的朋友其实可以多了解几门语言,这样可以让自己的视野更加开阔。学Python主要是因为它能够快速而简洁地开发一些程序,易学易懂。但笔者认为如果想要在程序开发行业做得更久,有良好的C语言基础是不可缺少的。尚学堂陈老师指出,因为真正要做高性能编程, 不可能将机器的体系架构抛到脑后让Python虚拟机(或Java虚拟机等)帮你搞定所有底层。越来越多的CPU core,越来越恐怖的内存性能瓶颈,对于上层开发人员来说,无所谓,但是对高性能程序开发人员来说,这些是无法透明的。很多应用,还是自己掌控比较有效。这些场合中,汇编和C还是不可替代的。但是,光知道C是不够的,掌握一门面向对象语言,相对更高层的语言,不仅对以后的个人发展有利,也会对自己的技术认识产生帮助。

C的学习曲线更陡,貌似简单,其实难点也非常多,看上去较为简单的程序,也不是在短时间内可以掌握的。若要谈到底层优化,需要的功底是按年算的。但是一旦你C语言的基础打好了,对计算机的理解,对其他语言的理解都是大有帮助的。比如,如果你有C基础,可以说,在较短的时间内解除Python,就能写的出来一些不短的程序。后面的优化也算不上是难度太大的算法,都是非常基本的语句换来换去。在实际应用层面,Python比C方便的不是一个层次。

说起两者的不同可以在对象机制上加以比较:对于“动态确定变量类型”的理解,需要提到的是Python的Object对象机制。Objects即为“对象”是Python对于数据的抽象,用对象或者对象之间的关系可以表示Python中所有的数据,函数、字符串等等都可以是对象。关于对象有三种属性:实体,类型和值。实体一旦创建就不会被改变,一般而言,决定对象所支持的操作方式的类型(type,包括number,string,tuple及其他)也不会改变,但它的值可以改变。如果要找一个具体点的说明,实体就相当于对象在内存中的地址,是本质存在。而类型和值都只是实体的外在呈现。Python提供了一些接口与对象进行交互,比如id()函数用来获得对象实体的整形,type()函数获取其类型等等。

这种object机制,是C所不具备的,这也是Python的优势所在,c是一种静态类型语言,我们可以定义int a, char b等等,但必须是在源代码里面事先规定。比如我们可以在Python里面任意一处直接规定a = “lk”,这样,a的类型就是string,这是在其赋值的时候才决定的,我们无须在代码中明确写出。

C和Python,初学者应该如何选择?在以上内容中笔者举了一些简单的例子,尤其是关于Object对象机制是Python与C最大的不同之处,除此之外还有Python的库的强大与丰富,也使得用Python做一般的程序开发更加方便。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180316A0QVYK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券