C语言与Python的区别

一、基础概念

C语言是一门编译型语言,需要编译器将代码转化成电脑能够识别的二进制,可以脱离其语言环境独立执行,执行效率极高,但应用程序一旦需要修改,必须先修改源代码,然后重新编译。而且编译型代码是针对某一平台编译的,当前平台的编译结果无法在其他的平台使用。

Python是一门解释型语言,运用解释器进行逐行的解释,立马解释,因此解释效率低,但是开发效率极高,一旦发现错误可直接修改,且跨平台能力强。

二、变量

1.C语言中变量需要定义,int char float等

而Python不需要定义

2.Python不支持静态变量,因为Python是动态语言,不存在完全静态的变量

而C语言里面的变量类型很多,自动、静态、寄存器、外部等

三、输入与输出

C语言的输入与输出为scanf与printf,需要用匹配的占位符和取地址符

Python的输入与输出为input与print,什么都不需要,输入什么类型就是什么类型

四、基本框架

C语言是由若干头文件与函数构成的,其中必须包含主函数main,主函数是程序的唯一入口;表示层次和从属时需要打花括号,且要成对;当一句可执行语句结束的时候末尾需要有分号

Python是由模块组成的,一个模块对应Python源文件,后缀名为.py,执行程序时按照模块中语句的顺序依次执行;没有主函数;表示层次和从属时不需要打括号,但是要严格缩进;不需要打分号

五、注释

C语言的单行注释为// 多行注释为/* */

Python的单行注释为# 多行注释为‘’‘ ’‘’

六、运算符

C语言有自增和自减运算符++、-- 但是没有乘方,> < 也不能连起来比较,必须用&&连接;逻辑运算符分别为&& || !

Python无自增和自减运算符,而是用+=1,-=1代替,有乘方为**,> <也可以连着用;逻辑运算符分别为and or not;比C语言多了一个成员运算符in,可以直接检测某数据是否存在于另一个里面;Python有身份运算符is is not用来判断两个标识符是不是引用自一个对象,而is与==的区别在于:is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等

七、选择结构

C语言的if后面判断条件需要加()并打上{ };多重if格式为if、else if、else;有switch语句

Python的if后面不需要括号,只需要一个空格,在末尾加上一个冒号,下面从属于这个if的代码块均需要相同的缩进;多重if的格式为if、elif、else;没有switch

八、循环结构

C语言有while do while for三种循环语句;goto语句

Python有while for两种循环语句,但Python的for循环可以历遍任何数据类型,字符串,列表等; pass 是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句,在程序没写完时避免空代码报错

九、数组与列表

C语言中有数组,分为一维数组、多维数组、字符串数组;用于储存相同类型的数据,并通过索引取出或加入;增减、操作元素只能用for循环等方法手动操作

Python中有列表,与C语言不同,Python的列表可以切片,也就是list[1: 3],把某一段数据取出;Python的列表可以由其他类型直接转化过来list(),但是转化进列表的数据类型全部变为字符类型;列表有很多可直接调用的函数用来增减、操作元素

十、函数

C语言的函数需要在主函数之前声明、定义;传参时也需要定义变量;自创函数必须放进主函数里面才能运行

Python的函数定义需要def;传参时不需要定义变量;Python没有主函数,需要自创函数时直接调用就行

十一、返回值

C语言return语句只能返回一个值

Python的return可以同时返回多个值,其本质是一个tuple(元组)。但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便

十二、结构体与字典

C语言里面相同类型或不同类型的数据构成的数据集合叫做结构体,将有固定关系的数据放在一起,作为一个整体

struct xxx{
};

Python里面通过键值对储存相同类型或不同类型的数据

dict = {key:value}

十三、灵活的Python

Python可以通过强大的函数库进行C语言无法简便操作的转换,如用dict转换成字典,用list转换为列表

十四、迭代器与指针

根据亲身体验加上网上查找资料,我自认为可以把C语言的指针看成一种泛型迭代器。

C语言指针的本质就是内存地址,它输出的是地址,得到的结果是地址里面保存的数据

Python的迭代器是可以被next()函数调用并不断返回下一个值的对象

之所以称指针为泛型迭代器,个人观点是因为:
遍历后不返回开头
然后可以next一个个走;,一步算一步
但是它会把算完的东西扔了,不保留
但是指针会给地址保留等原因

每个人都有自己的理解,明白就行

十五、生成器

C语言没有生成器

Python的生成器十分强大,generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素

这意味着Python的生成器可以节省大量的内存,并提高运行速度。但与此同时,生成器的复杂程度也是很高的,常见的错误:

generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行

调用generator函数会创建一个generator对象,多次调用generator函数会创建多个相互独立的generator

如果想要拿到返回值,必须捕获StopIteration错误,返回值包含在StopIteration的value中

十六、元组和集合

C语言都没有(应该)

Python元组可以理解成进阶版列表,因为其不可轻易更改,因此相比于列表,优势是不用多说的

Python集合是为了方便将列表里的元素进行数学运算

2

  • 33
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: C语言Python语言区别在于,C语言是一种编译型语言,而Python语言是一种解释型语言C语言更适合于系统级编程和底层开发,而Python语言则更适合于快速开发和数据处理。此外,C语言需要手动管理内存,而Python语言则具有自动内存管理的特性。 ### 回答2: C语言Python语言是两种不同的编程语言,它们在以下几个方面有所不同。 首先,C是一种编译型语言,而Python是一种解释型语言。对于C语言,你需要将源代码编译成机器语言才能执行,而Python则通过解释器来逐行解释执行源代码。这意味着Python开发过程更为便捷,而C语言的执行速度更快。 其次,C语言具有更高的灵活性和更底层的访问能力。C语言是一种低级语言,可以直接访问内存地址和硬件。这使得C语言开发一些需要与操作系统进行交互、底层编程或需要最大化性能的应用程序方面具有优势。而Python则是一种高级语言,封装了很多底层细节,更注重代码的简洁性和可读性。 此外,C语言提供了更多的控制结构和指针操作,允许开发者更直接地控制程序的流程和内存。而Python则更加注重代码的简洁和表达能力,提供了更容易上手和理解的语法和数据结构。Python的语法更加简洁易读,减少开发者的出错风险。 最后,C语言有更广泛的应用领域,特别是在操作系统和嵌入式开发方面。而Python则在数据科学、机器学习和人工智能领域越来越受欢迎,它的库和框架丰富,方便开发人员进行快速原型设计和高效的数据处理。 总之,C语言Python语言在编译方式、性能、灵活性、底层访问能力以及应用领域等方面存在差异,开发者可以根据具体需求选择适合自己的编程语言

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值