对于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作通常的程序开发更加方便。
算法