Python實現線性搜尋
阿新 • • 發佈:2018-12-18
例子很簡單,但是關鍵是練習如何有效的用assert發現問題並提供有效反饋。
import sys import traceback def linearSearch(iter, s): try: #iter should be iterable assert type(iter) == list or type(iter) == tuple #iter should not be empty assert len(iter) > 0 #all elemnts in iter should be in the same type assert len(set([type(x) for x in iter])) == 1 #the element to be looked for should be corresponding type assert type(s) == type(iter[0]) except AssertionError: _, _, tb = sys.exc_info() traceback.print_tb(tb) # Fixed format tb_info = traceback.extract_tb(tb) filename, line, func, text = tb_info[-1] print('An error occurred on line {} in statement {}'.format(line, text)) return "asster failed" n = len(iter) for i in range(n): if iter[i] == s: return i return "not found" a = (200,9,8,3,6,5,4,2,7,1,15,13,12,199) print(linearSearch(a, 199)) #error calls print(linearSearch('abc', 12)) print(linearSearch([], 12)) print(linearSearch(a, '12')) print(linearSearch(['a',2,12], 12))