欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python实现线性搜索

程序员文章站 2022-04-17 11:30:10
...

例子很简单,但是关键是练习如何有效的用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))
相关标签: 异常处理