gpt4 book ai didi

python - 代码可以在 Java 中运行,但不能在 Python 中运行?

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:46 25 4
gpt4 key购买 nike

这段代码似乎可以在Java中运行,但是当我将其转换为Python时,它超出了最大递归深度并退出。不知道有什么区别。它们看起来对我来说功能相同。

Java 版本:

public String addCommas(String number)
{
if(number.length < 4
{
return number;
}
return addCommas(number.subString(0, number.length - 3)) + "," + number.subString(number.length - 3, number.length);
}

Python版本:

def addCommas(number):
number = str(number)
if len(number) < 4:
return number
else:
return addCommas(number[:len(number) - 3] + ',' + number[len(number) - 3:])

预先感谢您的帮助!

最佳答案

区别在于最后一行。

 return addCommas(number.subString(0, number.length - 3)) + "," + number.subString(number.length - 3, number.length);

这仅在第一个子字符串上调用 addCommas (这会将下一次调用的字符串参数的长度减少 3),然后将逗号和最后三位数字附加到其结果中。

 return addCommas(number[:len(number) - 3] + ',' + number[len(number) - 3:])

另一方面,这首先添加一个逗号,并对整个新字符串调用 addCommas(该字符串甚至比原始字符串更长,导致无限递归循环)。

 return addCommas(number[:len(number) - 3]) + ',' + number[len(number) - 3:]

这可以工作,因为它只在第一个子字符串上调用 addCommas 并将逗号添加到 addCommas 的结果中,与 Java 代码的操作方式相同。

关于python - 代码可以在 Java 中运行,但不能在 Python 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38672495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com