Python def in if True 不 return
Python def in if True don't return
此代码,if count >= 3 : print("test")
成功但 return True
不工作..为什么..?!?
def dfs(a, b, i, count):
if a<=-1 or a>=7 or b<=-1 or b>=7:
return False
if lists[a][b] == i and lists[a][b] > 0:
lists[a][b] = -1 #확인 했음을 표시
count += 1;
dfs(a+1, b, i, count)
dfs(a-1, b, i, count)
dfs(a, b+1, i, count)
dfs(a, b-1, i, count)
if count >= 3 :
print("test") #THIS PRINT SUCCESS!!
return True #BUT DON'T return True!!
else:
return False
return False
lists = []
for i in range(7):
lists.append(list(map(int, input().split(" "))))
result = 0
for a in range(0, 7):
for b in range(0, 7):
if dfs(a, b, lists[a][b], 0) == True:
#Never run.. this codes..
print("result up?")
result += 1
print( result )
输入数据是
2 1 5 1 1 3 4
2 1 5 1 3 5 3
2 3 4 5 2 2 4
4 4 3 2 3 1 3
4 3 5 3 1 4 3
5 4 4 3 3 5 5
2 1 3 5 1 1 2
请帮帮我ㅠㅠ..
问题出在
dfs(a+1, b, i, count)
dfs(a-1, b, i, count)
dfs(a, b+1, i, count)
dfs(a, b-1, i, count)
如果你把它改成
print(dfs(a+1, b, i, count))
print(dfs(a-1, b, i, count))
print(dfs(a, b+1, i, count))
print(dfs(a, b-1, i, count))
突然“失踪”return真出现了。这里的问题是您没有对实际 returned 的“True”做任何事情。所以你需要用这个 returned 值做点什么,我不确定你在尝试什么,但我希望它能回答关于发生了什么的问题
部分输出
False
False
False
False
test
True
False
False
此代码,if count >= 3 : print("test")
成功但 return True
不工作..为什么..?!?
def dfs(a, b, i, count):
if a<=-1 or a>=7 or b<=-1 or b>=7:
return False
if lists[a][b] == i and lists[a][b] > 0:
lists[a][b] = -1 #확인 했음을 표시
count += 1;
dfs(a+1, b, i, count)
dfs(a-1, b, i, count)
dfs(a, b+1, i, count)
dfs(a, b-1, i, count)
if count >= 3 :
print("test") #THIS PRINT SUCCESS!!
return True #BUT DON'T return True!!
else:
return False
return False
lists = []
for i in range(7):
lists.append(list(map(int, input().split(" "))))
result = 0
for a in range(0, 7):
for b in range(0, 7):
if dfs(a, b, lists[a][b], 0) == True:
#Never run.. this codes..
print("result up?")
result += 1
print( result )
输入数据是
2 1 5 1 1 3 4
2 1 5 1 3 5 3
2 3 4 5 2 2 4
4 4 3 2 3 1 3
4 3 5 3 1 4 3
5 4 4 3 3 5 5
2 1 3 5 1 1 2
请帮帮我ㅠㅠ..
问题出在
dfs(a+1, b, i, count)
dfs(a-1, b, i, count)
dfs(a, b+1, i, count)
dfs(a, b-1, i, count)
如果你把它改成
print(dfs(a+1, b, i, count))
print(dfs(a-1, b, i, count))
print(dfs(a, b+1, i, count))
print(dfs(a, b-1, i, count))
突然“失踪”return真出现了。这里的问题是您没有对实际 returned 的“True”做任何事情。所以你需要用这个 returned 值做点什么,我不确定你在尝试什么,但我希望它能回答关于发生了什么的问题
部分输出
False
False
False
False
test
True
False
False