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内置的字符串处理函数整理
Jan 29 Python
Python Web开发模板引擎优缺点总结
May 06 Python
Python实现从脚本里运行scrapy的方法
Apr 07 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
python3人脸识别的两种方法
Apr 25 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
python编写俄罗斯方块
Mar 13 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
php微信支付之APP支付方法
2015/03/04 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
php上传大文件设置方法
2016/04/14 PHP
CI框架常用方法小结
2016/05/17 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
javascript &&和||运算法的另类使用技巧
2009/11/28 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
js验证密码强度解析
2020/03/18 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
详解Python发送邮件实例
2016/01/10 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
用Python解数独的方法示例
2019/10/24 Python
Django实现随机图形验证码的示例
2020/10/15 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
母亲节感恩寄语
2014/02/21 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记