网站首页 > 技术文章 正文
记得我第一次学编程语言,是本科时的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
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简单。
猜你喜欢
- 2025-03-10 北京大学教授亲自编写的32个Python实战项目,建议熟练编写
- 2025-03-10 Python是什么?有何作用?
- 2025-03-10 1次订单系统迁移,头发都快掉完了...
- 2025-03-10 Python爬虫-面向知乎的答案提取和图片下载
- 2025-03-10 Python 3.12 目标:还可以更快
- 2025-03-10 再见VBA,在Excel中直接调用python代码
- 2025-03-10 大数据告诉你知乎上的帅哥美女都集中在哪个行业(附Python代码)
- 265℃Python短文,Python中的嵌套条件语句(六)
- 264℃python笔记:for循环嵌套。end=""的作用,图形打印
- 263℃PythonNet:实现Python与.Net代码相互调用!
- 259℃Python实现字符串小写转大写并写入文件
- 257℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 117℃原来2025是完美的平方年,一起探索六种平方的算吧
- 98℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 90℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)