如果您是编程的新手,是计算机老师,还是只是打算让他的孩子开始编程的父母–您一定想知道从哪里开始。 C ++,C,Java,Python –那里有太多选择! 尽管所有这些语言本身都很棒并且很受欢迎,但是C ++和python之间的争论已经有一段时间了。
在比较它们之前,让我们分别查看每种语言。
蟒蛇
通用的高级编程语言Python由Guido van Rossum于1991年创建。创建python的基本目标是简单。 到目前为止,它被视为最简单的语言之一-实际上,它非常接近普通的日常英语。 诸如缩进之类的功能使代码易于阅读且美观(尽管这也是造成强烈反差的原因),而库函数使其功能极为强大,尤其是对于初学者而言。
虽然python绝对是两者中更容易学习的语言,但它还是IEEE 2018顶级编程语言中的顶级语言 。 可以说,它的流行和易用性使python成为行业中非常强大且理想的语言。
C ++
C ++由Bjarne Stroustrup于1979年提出,它也是一种高级通用编程语言。 它基本上是对C的升级,最初被称为“带类C”。 这是C语言中面向对象编程的介绍。
与Python相比,C ++是一种很难学习的语言。 尽管如此,尽管存在学习上的困难,但C ++是一种非常灵活的语言,它使程序员对计算机中的所有内容(包括内存分配)具有强大的控制能力,而这在python中是无法控制的。
尽管Python和C ++都是面向对象的,但封装(数据和功能的绑定作为一个单元)在Python中不可用。
比较Python和C ++
让我们根据许多通用的行业指标来比较这两种语言:
易于学习
初学者的主要决定因素之一是学习的便利性。 如果语言太难了,它甚至可能使程序员偏离轨道,并扼杀了他不断追求更好的愿望。
无疑,Python更接近英语,因此更易于学习。 另一方面,C ++与CPU非常接近,并且处理内存分配,如果这对于初学者来说不小心的话,其结果可能是使用错误的C ++程序破坏了系统。
为了让您了解其简单性,Python的编译步骤为零。 如果您将文件另存为myprogram.py,则只需运行python myprogram.py即可运行该文件。
在这种情况下,阅读Python的Zen可以清楚了解该语言的意图和理念。 Zen中的几行内容如下:
- 美丽胜于丑陋。
- 稀疏胜于密集。
- 如果实现难以解释,那是个坏主意。
C ++没有这样的文档或思路清晰。 它的确是一个庞大的支持者社区,昼夜不停地工作以帮助解决问题。
速度
使用行业级软件时,速度至关重要-尤其是在该软件是实时,时间敏感的实体的情况下。 语言越快,就越有效。 在这里,C ++赢得了胜利。 它比Python快许多倍 ,原因是Python本身是用C(C ++的前身)编写的。
由于我们的辩论严格来说是关于初学者应该学习什么的,因此速度在初学者阶段并不重要。
内存管理
在C ++中,您必须为新变量分配内存,并在它们的工作结束时释放它们。 如果不这样做,可能会导致内存泄漏。 由于C ++不提供垃圾回收,而是使用指针,因此在某些情况下不可避免地发生内存泄漏。
但是,Python中没有此类规则。 Python被编写为自行调整和分配内存–所有功能都是动态分配内存! 如果您是一位经验丰富的程序员,则可能需要从事需要控制内存分配的项目。 但是,作为一个初学者,您无需弄乱这方面。
可读性
C ++有很多语法可供掌握。 但是,它没有缩进规则,这使代码在某些时候看起来像垃圾。 Python,更像英语,它的缩进可以帮助程序员跟踪打开的每个括号。 这可能对初学者来说非常诱人,并且有时代码看起来像艺术品!
为了探究“可读性”方面的观点,让我们看一下给出相同输出的两个代码片段。
C ++
class HelloWorld
{
public :
void PrintHelloWorld ()
{
std :: cout << "Hello World!\n" ;
}
};
蟒蛇
print(“Hello World!”)
这两个代码片段都提供相同的输出,但是,如果您是初学者,那么即使您完全理解了Python代码,也可能会理解C ++代码,这可能会让您感到恐惧。 这就是Python的魔力!
最终裁决
尽管我们并不认为这两种语言中的任何一种都是“更好”的语言,但无可否认,Python易于学习。 但是,回到流行指数,我们一定不能忘记,流行意味着相关。
如果TIOBE有任何优势,而Python是目前最受欢迎的语言之一,那么业界很可能很快就会采用它。 这使python成为一种安全的语言。 此外,如果您打算学习机器学习,数据科学或人工智能,那么Python是最适合的语言。 绝对的赢家,对初学者来说是最安全的。
至于不确定的灵魂,请查看Cython – Python的力量与C ++的结合。 好玩吗?
资料来源:
https://www.python.org/dev/peps/pep-0020/
https://www.tiobe.com/tiobe-index/
https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages
https://www.quora.com/What-are-the-advantages-of-Python-over-C++
From: https://hackernoon.com/python-vs-c-what-should-a-beginner-choose-y915e3zh7