이 코드는 문자열에있는 문자를 재귀 적으로 검색합니다.명령문이 실행되지 않는 경우
print
문을 주석 처리하지 않은 경우 문이 재귀 및 양분과 잘 작동하는 것으로 보이지만 True
문을 반환하는 if
문은 발생하지 않습니다.
def isIn(char, aStr):
'''
char: a single character
aStr: an alphabetized string
returns: True if char is in aStr; False otherwise
'''
b = sorted(aStr)
c = len(aStr)
# print("string b " + str(b))
# print("c " + str(c))
# print("element middle: " + str(b[round(c/2)]))
#print("char: " + str(char))
#print(str(char) == str(b[round(c/2)]))
if ((str(char) == str(b[round(c/2)]))): # this if statement does not seem to fire
return True
elif (c == 1 and char != str(b[round(c/2)])) or (c == 0 and char != "") :
return False
#print("false")
else:
#if str(char) == str(b[round(c/2)]):
# return True
# print("true")
if char > b[round(c/2)]:
isIn(char, b[round(c/2):c])
elif char < b[round(c/2)]:
isIn(char, b[0:round(c/2)])
else:
return False
#print('fales')
을 그것이하여 "발생하지 않습니다"제대로 – Li357
들여 있어요 당신이 조건이 있다는 것을 의미 할 수 있도록 'str (char) == str (b [round (c/2)])'는'True'로 평가되지 않습니까? 들여 쓰기가 문제라면,이 질문은 논점입니다. –
속임수? http://stackoverflow.com/questions/15210646/i-expect-true-but-get-none –