我知道这可能是一个愚蠢的问题,但如何正确地从for loop
转换为while loop
。如果你问我为什么是因为我想知道如果在break
for loop
语句,while循环的结构是什么样的
到目前为止,这是我的代码:
genelist = []
integer = 0
for i in range(0, len(first_genome)):
for j in range(0, len(second_genome)):
integer = integer + 1
if first_genome[i] == second_genome[j]:
genelist.append(first_genome[i])
break
return(genelist, integer)
for循环没有错误但最让我烦恼的是这个代码用于while循环:
genelist = []
integer = 0
i = 0
j = 0
while i < len(first_genome):
while i < len(second_genome):
integer = integer + 1
if first_genome[i] == second_genome[j]:
genelist.append(first_genome[i])
j = j + 1
break
i = i + 1
return(genelist, integer)
与:
相同 genelist = []
integer = 0
i = 0
j = 0
while i < len(first_genome):
while j < len(second_genome):
integer = integer + 1
if first_genome[i] == second_genome[j]:
genelist.append(first_genome[i])
j = j + 1
break
i = i + 1
return(genelist, integer)
这怎么可能?
答案 0 :(得分:0)
代码不一样。
在第一个while循环中,您以无限循环结束,因为i
永远不会在内部递增。
在第二个示例中,您已将i
和j
代码分开。
在开始内部j = 0
循环之前,您在第二个代码上缺少的是while
。
genelist = []
integer = 0
i = 0
j = 0
while i < len(first_genome):
j = 0 #Added this
while j < len(second_genome):
integer = integer + 1
if first_genome[i] == second_genome[j]:
genelist.append(first_genome[i])
j = j + 1
break
i = i + 1
return(genelist, integer)