python和c语言的主要区别总结


Posted in Python onJuly 07, 2019

Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言。本萌新也刚开始接触Python,发现Python与其他语言确实有很大的区别。Python是由C语言实现的,因此想把Python与C语言做一个简单的比较。

1、语言类型

Python是一种基于解释器的语言,解释器会逐行读取代码;首先将Python编译为字节码,然后由大型C程序解释。

C是一种编译语言,完整的源代码将直接编译为机器代码,由CPU直接执行。

2、内存管理

Python使用自动垃圾收集器进行内存管理。

在C语言中,程序员必须自己进行内存管理。

3、应用

Python是一种通用编程语言,一个多范式。它主要支持面向对象编程,程序编程,函数编程。

C是结构化编程语言。允许使用函数,选择(if / else等),迭代(循环)。它主要用于硬件相关的应用程序。

4、速度

Python编程语言因为历史原因,有一个GIL锁,导致其对多线程支持不够好,运行速度较慢;而C语言很快,C语言是比较底层的语言,运行效率上要优于Python。

5、复杂度不一样

在Python中,不需要声明变量类型。而在C中,必须声明变量类型。

Python程序更易于学习,编写和阅读。而C程序语法比Python更难。

Python中的测试和调试更容易;而在C中测试和调试更难。

知识点扩展

大的区别。Python是由C语言实现的,因此想把Python与C语言做一个简单的比较。

一、C语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台,一般用于操作系统,驱动等底层开发。

Python是编译型还是解释型这个界限并不明显,但大致上可以理解为解释型语言,执行速度慢,由于Python虚拟机,Python是可以跨平台的,Python高度集成适合于软件的快速开发。

二、

python和c语言的主要区别总结

C语言中需要事先定义变量类型,以int类型为例,当定义一个int型变量后,就会在内存中开辟4个字节,再来进行初始化,由于长度是指定的,在运算过程中需要考虑,溢出,精度等问题。

Python中的数据类型:

1.Number:数字

  • Int
  • Float
  • Bool
  • Complex

2.String:字符串

3.List:列表

4.Tupel:元组

5.Sets:集合

6.Dictionary:字典

ython不需要事先定义变量类型,以a=3为例,在内存中存放一个整数3,然后再用变量a指向3,变量a是没有类型的,我们所说的类型是指变量所指的内存中对象的类型。

从数据类型上就可以看出Python的友好性,基本数据类型变少了,没有烦人的指针,不需要考虑数据溢出和精度的问题,当在程序中需要使用某个变量时,就能够直接使用,而不需要在程序开头定义变量。除此之外,Python还提供了str,list,dict这些强大的数据类型,让程序开发变的更为简单。

三、Python还提供了一个交互界面,输入python进入交互界面,输入exit()退出交互界面,类似于Linux终端,输入一行命令,执行一行,为学习Python提供了很大的便利。

四、在运算符和优先级上面,两者并没有大的区别,但在python中没有自加和自减运算符,在逻辑运算符上Python也区别于C语言,Python中是and,or,not ,而C语言中则是&&,||,!

六、Python中通过缩进来表示语句体,C语言通过{}来表示语句体,并且在Python中每一条语句结尾后没有分号,判断语句if else,这两者没有区别,循环语句while也没有,只是for循环,Python通过for in来表示。

七、Python有很多内置函数(build in function),不需要写头文件,Python还有很多强大的模块,需要时导入便可。C语言在这一点上远不及Python,大多时候都需要自己手动实现。

八、C语言中的函数,有着严格的顺序限制,如果要调用函数,该函数需要在本次调用之前就需要被实现,或者在程序开头事先声明,而Python中则没有这个限制,Python中还有高阶函数这一概念,即函数名也可当作函数参数,函数名也是一种变量,指向内存中的某个函数,这种写法可以大大减少代码长度。

python中还提供了可变参数和关键字参数,这样使得函数的功能大大提高,原来需要写多个函数,现在只需要一个函数就可以实现这些功能。

九、C语言是面向过程的语言,很多时候都需要自己手动实现函数来完成某一功能。Python中引入了类和对象,是面向对象编程的语言,面向对象使得代码的可重用性大大提高,数据的封装性也更好。面向对象与面向过程的具体比较就不多说了,但有两句非常重要的话:类是抽象的,而对象是具体的。

十、python中既有函数也有方法,常常让人疑惑,我个人觉得也没有必要区分的非常清楚,但是两者还是有较大的区别:函数是自由的,而方法是受限的。在编程的时候需要分清楚调用的是方法还是函数。

总结:Python可以说是非常`简单`的语言,高度集成,代码量少,简单是相对其他语言而言。但编程从来都不是一个简单活,需要我们不断学习,掌握底层实现原理,才是正道。

Python 相关文章推荐
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
python超简单解决约瑟夫环问题
May 12 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 Python
python分布式环境下的限流器的示例
Oct 26 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
Pyecharts地图显示不完成问题解决方案
May 11 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 #Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 #Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 #Python
pandas 时间格式转换的实现
Jul 06 #Python
pandas中的series数据类型详解
Jul 06 #Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 #Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 #Python
You might like
php中adodbzip类实例
2014/12/08 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
详解KMP算法以及python如何实现
2020/09/18 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
有针对性的求职自荐信
2013/11/14 职场文书
商业房地产广告语
2014/03/13 职场文书
节能标语大全
2014/06/21 职场文书
邀请书格式范文
2015/02/02 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
小学感恩节活动总结
2015/03/24 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
纯html+css实现打字效果
2021/08/02 HTML / CSS
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python