这段Python代码与Java代码等价吗?
我是Python的新手,所以请容忍我 这是Java代码:这段Python代码与Java代码等价吗?,java,python,Java,Python,我是Python的新手,所以请容忍我 这是Java代码: public static int countDeafRats(final String town) { String t = town.replaceAll(" ",""); int count = 0; for (int i = 0 ; i < t.length() ; i+=2) if (t.charAt(i) == 'O') count++; return count; }
public static int countDeafRats(final String town) {
String t = town.replaceAll(" ","");
int count = 0;
for (int i = 0 ; i < t.length() ; i+=2)
if (t.charAt(i) == 'O') count++;
return count;
}
public static int countDeafRats(最终字符串){
字符串t=town.replaceAll(“,”);
整数计数=0;
对于(int i=0;i
这是我将其转换为Python的尝试:
def count_deaf_rats(town):
count = 0
increment = 0
newTown = town.replace(" ", "")
while increment <= len(newTown):
if newTown[increment]=='O':
count +=1
increment +=2
return count
def count_duan_rats(城镇):
计数=0
增量=0
newTown=town.replace(“,”)
当递增时,似乎您正在尝试查找索引递增2处出现的字符串中的零数。您可以在Python中使用正则表达式和列表理解:
import re
new_town = re.sub("\s+", '', town)
count = sum(i == "0" for i in new_town[::2])
似乎您正在尝试查找索引增加2时出现的字符串中的零数。您可以在Python中使用正则表达式和列表理解:
import re
new_town = re.sub("\s+", '', town)
count = sum(i == "0" for i in new_town[::2])
好的,我建议您必须遵循@Ajax1234提供的答案,但由于您提到您对python相当陌生(可能对regex
不太熟悉),因此我建议对于当前实例,您应该坚持使用您尝试转换的代码。这是相当正确的,只是您需要对代码进行一些修改(尽管与缩进相关的修改非常小)。修改后的代码如下所示:
def count_deaf_rats(town):
count = 0
increment = 0
newTown = town.replace(" ", "")
while increment <= len(newTown):
if newTown[increment]=='O':
count +=1
increment +=2
return count
#print count_deaf_rats("~O~O~O~OP~O~OO~")
阅读有关范围函数的更多信息好的,我建议您必须遵循@Ajax1234提供的答案,但因为您提到您是相当新的(可能对regex
不太熟悉)对于python,我建议对于当前实例,您应该坚持使用您试图转换为的代码。这是相当正确的,只是您需要对代码进行一些修改(尽管与缩进相关的修改非常小)。修改后的代码如下所示:
def count_deaf_rats(town):
count = 0
increment = 0
newTown = town.replace(" ", "")
while increment <= len(newTown):
if newTown[increment]=='O':
count +=1
increment +=2
return count
#print count_deaf_rats("~O~O~O~OP~O~OO~")
阅读有关范围函数的更多信息我对Java了解不多,但我相信这是将您的代码更直接地翻译成python:
def countDeafRats(town):
count = 0
new_town = town.replace(' ','')
#format for range: start, end (exclusive), increment
for i in range(0, len(new_town), 2):
if new_town[i] == '0':
count += 1
return count
我同意@Ajax1234的回答,但我认为您可能会喜欢一个更接近您的代码的示例,使用for循环来演示增量2的用法。希望这有帮助 我对Java了解不多,但我相信这是将您的代码更直接地翻译成python:
def countDeafRats(town):
count = 0
new_town = town.replace(' ','')
#format for range: start, end (exclusive), increment
for i in range(0, len(new_town), 2):
if new_town[i] == '0':
count += 1
return count
我同意@Ajax1234的回答,但我认为您可能会喜欢一个更接近您的代码的示例,使用for循环来演示增量2的用法。希望这有帮助 缩进是错误的。defdef
下面的所有内容都应该缩进到右侧。您可以显示一个示例输入和预期输出吗?与其说是直接的翻译,还不如说有一种类似于蟒蛇的自然翻译方法<对于范围(0,newTown,2)中的i,code>:
在Python中永远不会使用while
循环,但只要看一眼,它看起来是等效的。如果块缩进错误,增量+=2
不应该在。defdef
下面的所有内容都应该缩进到右侧。您可以显示一个示例输入和预期输出吗?与其说是直接的翻译,还不如说有一种类似于蟒蛇的自然翻译方法<对于范围(0,newTown,2)中的i,code>:你永远不会在Python中使用while
循环,但只要看一眼,它看起来是等效的。增量+=2
不应该在if块内,也不应该是求和(c=“0”,在Newu town[:2])
@juanpa.arrivillaga谢谢你的建议。请查看我最近的编辑。或者只查看sum(c==“0”代表新市镇的c[::2])
@juanpa.arrivillaga谢谢你的建议。请看我最近的编辑。