Python 一段代码遇到问题
本文介绍了Python 一段代码遇到问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
def check_connection(network,name1,name2):
network = list(network)
name = name1
for a in network:
if name in a and name2 in a:
print 'yes'
return True
for a in network:
if name in a:
name = a.replace(name1,'').replace('-','')
network.remove(a)
check_connection(network,name,name2)
return False
print check_connection(("dr101-mr99", "mr99-out00", "dr101-out00", "scout1-scout2","scout3-scout1", "scout1-scout4", "scout4-sscout", "sscout-super"),"super", "scout2")
输出:
yes
False
明明 return True 了,为什么最后的结果是 False ?
麻烦大家了,我是一名Python自学者,还不太会提问题,请见谅!
解决了:
def check_connection(network,name1,name2):
network = list(network)
for a in network:
if name1 in a and name2 in a:
return True
for a in network:
if name1 in a:
name1 = a.replace(name1,'').replace('-','')
network.remove(a)
return check_connection(network,name1,name2)
return False
提示:递归函数,return 只是跳出递归函数
这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义
解决方案
def check_connection(network,name1,name2):
network = list(network)
for a in network:
if name1 in a and name2 in a:
return True
for a in network:
if name1 in a:
name1 = a.replace(name1,'').replace('-','')
network.remove(a)
return check_connection(network,name1,name2)
return False
递归函数
这篇关于Python 一段代码遇到问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文