python语言运行速度如此差?

这几天小孩问一个不定方程:1/x+1/y+1/z=5/6整数解,我用python和C/C++编写的程序分别如图所示。在我的电脑上,python运行时间5+s,C/C++运行时间0.06+s。这让正在学习python的我动摇信心了。请问大神啥原因啊?

这就要说到 Python 类语言和 C 类语言的主要区别了,Python 属于解释型语言,通俗来说就是你可以一句一句地输入,而 Python 解释器(Interpreter)可以一句一句地执行,而 C 语言属于编译型语言,无法做到这一点,只能一次性输入完成,编译成一个完整的程序再执行,而这个编译的过程由于现代编译器做了非常多的优化,并且你的程序没有输入只有输出,每次运行都出固定的结果,所以极有可能被编译器优化成为了只有一条输出语句(实际情况可能要复杂一些),总的来说就是由于二者之间原理的差异导致了性能的差异,你可以搜一搜相关的资料,关掉 C 语言编译时的优化,再看一下性能,或者将固定的那些值改为运行时需要输入再看一下效果。
Python 相较于 C 的优势有很多,性能这一方面你不需要关心,做出一个足够复杂的程序,它们之间运行效率差不了多少的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-19
python的运算效率确实有点慢,但是好上手,易理解这一点也不可否认。楼主说的这个主要还是itertools.product这个方法本来就是封装好的函数,调用需要时间,比不上直接三次循环,如果仅是为了突出python的特点的话,可以用这个试试:

list = [[x, y, z] for x in range(-100, 100) for y in range(-100, 100) for z in range(-100, 100) if(x != 0 and y != 0 and z != 0 and 5 * x * y * z == 6 * (x * y + y * z + z * x))]

一行代码就足够了,效率略有提升,但是跟汇编语言C/C++还是不能比
相似回答