python与c语言的语法有哪些不一样的
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
虽然都是编程语言,但是他们的却有许多不同之处。
c是编译语言,Python是解释语言。这一点其他回答者也提到过,确实是重要的区分。编译和解释最大的区别是需要写一个入口函数,这在C语言中是主要的,Python写不出来。
编译类型的优点是“静态”,代码不能逐行编译执行,必须作为整个项目进行编译,方便了类型检查,降低了运行时的错误率;运行时效率更高,因为编译器可以协调各方面,生成更优化的机器指令;一旦编译完成,就可以用机器语言直接再次执行。
解释性语言的优点是“动态”,每行代码都可以独立执行(代码块除外)。这样可以灵活地进行实时交互、运行程序的调整和实时异步调试。
Python是动态类型语言,也是强类型语言。当你第一次给变量赋值时,它们决定了变量的类型。c语言是一种静态类型语言,在编译时确定数据类型。大多数静态类型语言通过要求在使用任何变量之前声明其数据类型来保证这一点。
Python中的所有数据都是用对象或者对象之间的关系来表示的。函数是对象,字符串是对象,一切都是对象的概念。每个对象都有三个属性:实体、类型和值。
c中没有对象的概念,只有“数据表示”。例如,如果有两个int变量a和b,如果您想比较它们的大小,可以使用a = = b来判断它们,但是如果它们是两个string变量a和b,您必须使用strcmp来比较它们,因为此时,a和b本质上是指向字符串的指针。如果您使用= =直接比较它们,比较实际上是指针中存储的值地址。
Python“动态类型”,我能理解,因为写的时候不需要声明类型。但你说是“强打”?这个我不能接受。哪种“强类型”语言可以随意给变量赋值?前面说过,存储对象的变量实际上只是内存中对象的地址(而“值类型”,比如小整数,一般直接存储值)。变量存储在堆栈中,对象放在堆中。书库一个个叠得整整齐齐,书库随机打开。当我们执行a = [1,2,3]这样的语句时,Python运行时环境在“堆”中生成一个新的list对象,返回对象的第一个地址,赋给新的变量A,推入栈中。之后,如果执行a = {‘x’: 1},只会将a中的地址改为字典对象。因此,变量可以存储任何对象,不是因为变量本身可以随意改变,而是因为指针可以指向任何东西。
另外,真正的弱类型语言 JavaScript 对上述整数加字符串、调用不存在的方法、整数参数传浮点数都不会报错。由此,你可以相信 Python 属于强类型语言了吧。(补充:更彻底的弱类型语言比如 Lisp,甚至是在机器上实现弱类型的)
Python有六种标准数据类型:数字、字符串、列表、元组祖先、集合集和字典字典。数字有四种类型:整数、布尔、浮点数和复数。c语言也可以分为四类:基本型、枚举型、void型、派生型。基本类型:整数型和浮点型。
不过,基本的数据结构,计算机组成原理这些,是什么语言都需要了解的,否则永远也只是知道一点皮毛。
学C语言难而python简单,但是先学C语言能更好打基础。毕竟,要做程序员,你不能只会一门语言,大多数程序员都需要会至少三门语言的。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: