【发布时间】: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。见stackoverflow.com/q/183853/2864740
标签: python c++ python-3.x