您现在所在的位置:首页 >学员就业 > 学生感言 > 初学python,感受和C的部分不同

初学python,感受和C的部分不同

来源:奇酷教育 发表于:

在学习的过程中,在翻阅资料的过程中,总结的一些C和python比较明显的不同之处,有大方向的,也有细节的。

  从开始学Python到现在也有三周多了,前后学习了Python核心编程。
 
  下面就是在学习的过程中,在翻阅资料的过程中,总结的一些C和python比较明显的不同之处,有大方向的,也有细节的,肯定也没有总结完。
 
  实际上,作为两种完全不同的语言,下面这些差异只是冰山一角而已。权当抛砖引玉吧,至少应该对和我有相同研究兴趣,正在考虑是否学习另一门语言的朋友有点帮助。
 
  我之前的研究方向是嵌入式,显然,C语言是我的主要语言。我不是一个语言爱好者,我以前觉得,对于做研究而不是应用的人来说,了解多门语言,不如精通一门语言。之所以去学python,主要还是因为python更有利于快速开发一些程序,也是因为现在认识到,研究和应用是不能分离的。
 
  很多人觉得,既然懂C了,那么进一步掌握C++应该是水到渠成,但C++不是C的超集,而我又不喜欢C++的繁琐和巨大,所以才决定看一看Python。我很喜欢Python的优雅与快捷。
 
  弱类型语言
 
  一种类型可以被忽略的语言,与强类型相反。python是弱类型的。在python中,您可以将字符串 ‘12′ 和整数 3 进行连接得到字符串’123′,然后可以把它看成整数 123 。
 
  强类型语言
 
  一种总是强制类型定义的语言。Java 和 Python 是强制类型定义的。您有一个整数,如果不明确地进行转换 ,不能将把它当成一个字符串。
 
  具体怎么来理解这个“动态确定变量类型”,就要从Python的Object对象机制说起了。Objects(以下称对象)是Python对于数据的抽象,Python中所有的数据,都是由对象或者对象之间的关系表示的,函数是对象,字符串是对象,每个东西都是对象的概念。
 
  这个object机制,就是c所不具备的,主要体现在下面几点:
 
  、刚才说了,c是一个静态类型语言,我们可以定义int a, char b等等,但必须是在源代码里面事先规定。比如我们可以在Python里面任意一处直接规定a = “lk”,这样,a的类型就是string,这是在其赋值的时候才决定的,我们无须在代码中明确写出。而在C里面,我们必须显式规定char *a = “lk”,也就是人工事先规定好a的类型。
 
  、由于在C中,没有对象这个概念,只有“数据的表示”,比如说,如果有两个int变量a和b,我们想比较大小,可以用a == b来判断,但是如果是两个字符串变量a和b,我们就不得不用strcmp来比较了,因为此时,a和b本质上是指向字符串的指针,如果直接还是用==比较,那比较的实际是指针中存储的值——地址。
 
  这就是我的部分体会