这个 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 函数之间的区别的主要内容,如果未能解决你的问题,请参考以下文章