有人说,Python比C语言难?该怎么反驳

记得我第一次学编程语言,是本科时的C语言选修课程,当时的感觉是编程真的好复杂,什么指针、断言、动态分配等各种概念,完全搞不懂啊。后来哼哧哼哧考了个七十多分,算是过关了。

后来知道C是偏硬件的编程语言,主要的用途是系统开发、嵌入式开发,所以我至今也没有用过C语言,后来做数据工作,开始接触Python、R,觉得和C完全不一样,有太多的轮子可以用。

最近在知乎上看到一个问题,说python不比C简单,不排除这是个钓鱼贴。

高赞的几个回答,还是蛮有趣,暗讽的比较多。基本意思是提问者属于小白,压根不知道C的难度。

但某种意义上,这个问题其实是值得讨论的。

对于95%以上的人来说,Python比C要简单很多,但对于另外5%深度使用Python的人来说,Python用起来可能会比C更复杂。

为什么呢?先看看Python和C语言的差异。

前面说过,C语言偏硬件编程,代码更加底层,Python相比C语言进行了封装和简化,类似windows和Linux的感觉。

Python把C语言中很多复杂、晦涩、冗长的功能概念都进行封装简化,比如数据类型、内存管理、错误处理等,本来C语言需要几十行代码能实现的功能,Python几行代码就搞定。

同样的打印hello word,python只需一行代码。

print("Hello, World!")

C语言需要五六行

#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}

很明显看出来python对函数和数据类型都进行了封装和简化处理,让代码更加容易编写和阅读。

另外,Python拥有大量的内置库和第三方库,调用起来非常方便,不需要程序员自己重新造轮子,这也是导致在绝大部分需求上,Python会比C简单很多。

那又为什么对于深度使用python的人来说,python可能又会比C语言更加难呢?

这同样是因为python的封装和简化导致了难,双刃剑的两面性。

首当其冲的是python的低效问题,因为python高级语言特性,牺牲了速度,不像C需要那样更接近硬件层面。

所以使用python开发复杂项目,必然要优化性能,比如CPython等,这会复杂很多。

其次,由于python把很多底层细节隐藏封装起来,如果你想进行更深度的开发,会比较困难,代码的维护和质量也更难管理。

所以你会看到C语言写的软件能稳定运行几十年没问题,很多大型软件也是C开发的。

但python在这块就比较劣势,比如开发性能密集型应用、实时性应用、高并发应用,就需要更多的时间去研究,并不像C那么方便稳定。

总的来说,C语言肯定比Python更艰深晦涩,但想要把Python用的炉火纯青,不见得会比C简单。

相关文章

为什么都说Python简单,但我觉得难?

Python普遍被大家认为是编程语言中比较简单的一种,但有一位电子信息的学生说自己已经学了C语言,但仍然觉得Python挺难的,感觉有很多疑问,像迭代器、装饰器什么的……所以他提出疑问:Python真...

聊聊python的入门,真的很难吗?其实不一定哦!

Python 入门基础:从几个常用命令开始如果你是刚接触 Python 的新手,可能会觉得编程有点复杂。其实,Python 的语法很简单,只需要掌握一些常用命令,就能轻松实现很多功能。下面我们用几个小...

Python之父:python根本没有那么难,边玩边学

Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。《Python游戏编程快速上手》这本书通过编写一个个小巧、有趣的游戏来教授 Python 编程,并且采...

Python基础较难理解的15个知识点 python最难的部分

对于很多初学者来说,Python是一门入门相对简单的编程语言,但其中却隐藏着一些较难理解的知识点。今天,我们就来扒一扒Python中那些可能让你抓耳挠腮的15个知识点,帮助你更好地掌握这门语言,打下坚...

Python分析数据难吗?某科技大学教授说,很难但有方法就简单

用python分析数据难吗?某科技大学的教授这样说,很难,但要讲方法,主要是因为并不是掌握了基础,就能用python来做数据分析的。所谓python的基础,也就是刚入门的python学习者,学习的基础...

python好不好学? python好学嘛

入门都不难,学好了都不易...