1、语言类型不同
成都创新互联公司是一家专注于做网站、网站设计与策划设计,江苏网站建设哪家好?成都创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:江苏等地区。江苏做网站价格咨询:028-86922220
Python是一种动态类型语言,又是强类型语言;C语言是静态类型语言,在编译期间就确定数据类型的语言;
2、内存管理不同
Python使用自动垃圾收集器进行内存管理;C语言中程序员必须自己进行内存管理;
3、对象机制不同
Python所有的数据,都是由对象或者对象之间的关系表示的,函数是对象,字符串是对象,每个东西都是对象的概念;C语言中没有对象这个概念,只有数据的表示。
4、运行效率不同
Python有一个GIL锁,导致其对多线程支持不够好,运行速度比较慢;C语言比较快,是很好的底层语言,运行效率上优于Python。
5、变量类型不同
Python有六个标准的数据类型,包含Number数字、String字符串、List列表、Tuple元祖、Sets集合、Dictionary字典;数字类型有四种,包含:整数、布尔型、浮点数和复数。C语言也分为四大类,其中包含基本类型、枚举类型、void的类型、派生类型,基本类型包含整数类型、浮点类型。
6、函数库的使用方法不同
C语言中使用库函数,需要引入头文件用include引入;Python中需要引入别的模块或者函数时需要用import引入。
下面是一个例子:
首先是python的一个简单函数
class Hello:
def __init__(self, x):
self.a = x
def print(self, x=None):
print(x)
def xprint():
print("hello world")
if __name__ == "__main__":
xprint()
h = Hello(5)
h.print()1
下面是C语言
#include python3.4m/Python.h
#include stdio.h
#include stdlib.h
#include string.h
int main()
{
Py_Initialize();
// 将当前目录加入sys.path
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
// 导入hello.py模块
PyObject *pmodule = PyImport_ImportModule("hello");
// 获得函数xprint对象,并调用,输出“hello world\n”
PyObject *pfunc = PyObject_GetAttrString(pmodule, "xprint");
PyObject_CallFunction(pfunc, NULL);
// 获得类Hello并生成实例pinstance,并调用print成员函数,输出“5 6\n”
PyObject *pclass = PyObject_GetAttrString(pmodule, "Hello");
PyObject *arg = Py_BuildValue("(i)", 5);
PyObject *pinstance = PyObject_Call(pclass, arg, NULL);
PyObject_CallMethod(pinstance, "print", "i", 6);
Py_Finalize();
return 0;
}
编译命令如下:
gcc pyapi.c -lpython3.4m -o pyapi
Python和C语言的区别:
1、语言类型:Python是一种基于解释器的语言,解释器会逐行读取代码,将Python编译为字节码,然后由大型C程序解释;C是一种编译语言,完整的源代码将直接编译为机器代码,由CPU直接执行。
2、内存管理:Python使用自动垃圾收集器进行内存管理;C语言中程序员必须自己进行内存管理。
3、应用:Python是一门通用编程语言,一个多范式,面向对象编程、程序编程、函数编程;C是结构化的编程语言,允许使用函数,选择,迭代,主要用于硬件相关的应用程序。
4、速度:在运行速度方面,Python比较慢,C语言比较快,因为C语言是底层语言,运行效率优于Python。
5、复杂度:Python不需要声明变量类型,C语言需要声明变量类型;Python更易于学习,编写以及阅读,而C语言语法更加难。
C语言不能直接调用Python源程序,但是可以通过进程调用来实现。