正如标题中提到的,当我运行这段代码时,我得到了“无”。你知道吗
def isIn(char, aStr):
'''
char: a single character
aStr: an alphabetized string
returns: True if char is in aStr; False otherwise
'''
if len(aStr)==0:
return False
elif len(aStr)==1:
return aStr==char
elif aStr[(len(aStr)/2)]==char:
return True
elif aStr[(len(aStr)/2)]>char:
return isIn(char, aStr[:(len(aStr)/2)])
elif aStr[(len(aStr)/2)]<aStr:
return isIn(char, aStr[(len(aStr)/2):])
isIn('n', 'abfnuv')
我已经检查过几次了,我认为在判断aStr是否等于char的过程中可能会发生这种情况,但是我不知道如何纠正它,也不知道它是如何发生的。 提前阅读此帖谢谢!你知道吗
更多信息:
我使用canopy python-2.7,当我使用“run the current file”按钮时,它返回None,但当我使用“run the selected text”按钮时,它返回True。 怎么会这样?你知道吗
你的测试中有两个错误。你知道吗
您正在对包含一个元素的整个列表进行测试,如下所示:
aStr
可以设置为['n']
,但它仍然不等于'n'
。使用索引:下一个,你在这里测试:
该分支针对
aStr
列表进行测试,而不是针对char
。python2允许这种比较,但在本例中,它将按类型名对类型进行排序。str
总是大于list
,所以分支总是真的。你知道吗改为对
char
进行测试:尽管如此,即使更正了这些错误,您仍然能够为给定的示例返回
True
:因为
n
字符恰好位于您测试的第一个中点。你知道吗相关问题 更多 >
编程相关推荐