我编写了这个函数来对整数进行简单的半程搜索,作为练习题。当我运行它时,我希望这些打印语句在每个 while 循环后触发,但是它似乎会停止,直到找到正确的答案,然后快速连续打印每个语句。这与睡眠声明有关还是我在这里遗漏了一些东西?
def start_search(self):
check_count = 1
# loop a search function of some kind
while not self.upper_bound == self.target_number:
time.sleep(0.01)
# get middle
middle = self.get_half(self.lower_bound, self.upper_bound)
print(f"checking between {self.lower_bound} and {self.upper_bound}")
# check if target higher or lower than middle
if middle > self.target_number:
print(f"Midpoint of {middle} is higher,")
self.upper_bound = middle
elif middle < self.target_number:
print(f"Midpoint of {middle} is lower,")
self.lower_bound = middle
else:
print(f"Found value at midpoint {middle} after {check_count} check(s)")
self.upper_bound = middle
check_count += 1
这与睡眠根本没有关系。感谢@MatsLindh,调试器清楚地表明这是一个不同的函数使程序停止运行。程序很简单,所以我猜错了,是这个函数拖延了一切。
使用调试器。