(1)包括简单的异常处理功能;
(2)用文件实现数据的读取操作;
(3)要求功能完整,无明显逻辑语法错误
def IndexBF(chars, pos, T):
length = len(T) # 获取模式串的长度
length2 = len(chars) # 获取主串的长度
tag = False
if length2 < length:
print('子串的长度大于主串,无法匹配')
else:
i = pos # 匹配的初始位置
while (i <= length2 - length):
iT = i
j = 0
tag = False # 设置匹配的初始为假
while j < length: # 子串还有字符未匹配
if chars[i] == T[j]: # 判断对应的元素是否相同
i += 1
j += 1
else:
break
if j == length: # 如果子串已经全部匹配完了,则成功,将布尔值修改成真值.
print('匹配成功,模式串在主串中首次出现的位置为', iT)
tag = True
break
else:
i = iT + 1
if tag == False: # 否则,不做修改,匹配失败。
print('匹配失败')
f = open('a.txt', 'r', encoding='utf-8')
chars = f.read() # 定义的主串
f.close()
T = 'fabc' # 需要匹配的子串
pos = 0 # 匹配的起始位置