此C和x2B之间的差异+;函数和Python函数

此C和x2B之间的差异+;函数和Python函数,python,c++,python-3.x,Python,C++,Python 3.x,我在C++中有返回正数 > 放大>代码> b/COD>次的功能。在C++中,这个函数运行时没有错误,但我想在Python中使用这个函数。有人能告诉我为什么这个函数在C++中返回结果,但在Python中不返回它,或者我在Python代码中犯了一个错误吗 我知道我可以用很多其他的方法编写这个函数,这个函数可能不是最好的解决方案,但是这个例子有什么问题?我要做的是在Python中运行它,而不用编写新的、更好的函数。为什么我可以在C++中运行这个代码,而不是在Python中运行? C++代码:- int

我在C++中有返回正数<代码> > <代码>放大>代码> b/COD>次的功能。在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;
}
def exp(a,b):
  result=1
  while b!=0:
    if b%2==1:
      result*=a
    b/=2
    a*=a
  return result
PYTHON代码:-

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

Python中的while条件是否有问题?

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

b/=2
您需要整数除法:

b //= 2

b/=2
——在Python 3中不是整数除法;与
b/=2
比较。仅适用于python3.x,因为以前的版本在
/
上运行良好,并将其输出视为整数。@VasuDeo.s的问题用python3标记。如果读者不知道这一事实,我只是想告诉他们这个答案。是的,我现在正在使用python-3.x,无论如何,感谢大家,这很有帮助。这真的很简单。