这个 C++ 函数和 Python 函数之间的区别

Posted

技术标签:

【中文标题】这个 C++ 函数和 Python 函数之间的区别【英文标题】:Difference between this C++ function and Python function 【发布时间】:2019-05-18 22:19:53 【问题描述】:

我在 C++ 中有一个函数,它返回正数 a 放大 b 倍。在 C++ 中,这个函数运行没有错误,但我想在 Python 中使用这个函数。谁能告诉我为什么这个函数在C++ 中返回结果,但在 Python 中没有返回结果,或者我在 Python 代码中出错的地方?

我知道我可以用许多其他方式编写这个函数,而且这个函数可能不是最好的解决方案,但是这个特定的例子有什么问题?我必须做什么才能在 Python 中运行它,而无需编写新的、更好的函数。为什么我可以在 C++ 中运行这段代码,但不能在 Python 中运行?

C++ 代码:-

int exp(int a,int b)
    int result=1;
    while(b!=0)
        if(b%2==1)
          result*=a;
        
        b/=2;
        a*=a;
    
    return result;

Python 代码:-

def exp(a,b):
  result=1
  while b!=0:
    if b%2==1:
      result*=a
    b/=2
    a*=a
  return result

Python 中的 while 条件有问题吗???

【问题讨论】:

b /= 2 -- 在 Python 3 中不是整数除法;比较b //= 2。见***.com/q/183853/2864740 【参考方案1】:

您在 Python 代码中使用浮点除法:

b/=2

你想要整数除法:

b //= 2

【讨论】:

仅适用于 python 3.x,因为以前的版本与 / 配合得很好,并将其输出视为整数。 @VasuDeo.S 用 python3 标记的问题。 我只是想告诉读者这个答案,如果他们不知道这个事实。 是的,我现在正在使用 python-3.x,无论如何感谢你们所有人,它有帮助。这真的很简单。

以上是关于这个 C++ 函数和 Python 函数之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

从函数调用传递参数或从变量传递参数之间的 C++ 区别

lambda和常规函数之间的python有啥区别?

C++ - “!pointer”和“pointer == nullptr”之间的区别?

php和c,c++的区别是啥?

C++ 虚函数和纯虚函数的区别

Java的静态成员和C++的静态成员之间的区别[关闭]