【问题标题】:Difference between this C++ function and Python function这个 C++ 函数和 Python 函数之间的区别
【发布时间】: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 条件有问题吗???

【问题讨论】:

标签: python c++ python-3.x


【解决方案1】:

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

b/=2

你想要整数除法:

b //= 2

【讨论】:

  • 仅适用于 python 3.x,因为以前的版本与 / 配合得很好,并将其输出视为整数。
  • @VasuDeo.S 用 python3 标记的问题。
  • 我只是想告诉读者这个答案,如果他们不知道这个事实。
  • 是的,我现在正在使用 python-3.x,无论如何感谢你们所有人,它有帮助。这真的很简单。
猜你喜欢
  • 1970-01-01
  • 2017-12-28
  • 2017-10-20
  • 2018-11-01
  • 1970-01-01
  • 2021-09-25
  • 2015-12-26
  • 2013-02-14
  • 1970-01-01
相关资源
最近更新 更多