A35754. 从键盘上分别输入要查找和替换的字符串, 对文本文件进行查找与替换, 替换后保存到新的文本文件中。思路: 输入待查找字符串 s, 需查找子字符串 key 和替换字符串 new, 通过调用自定义函数replace 实现替换。 完善划线处代码。s = input("请输入待查找的字符串: ")key = input("请输入需查找的子字符串: ")new = input("请输入要替换的字符串: ")…
题目描述
从键盘上分别输入要查找和替换的字符串, 对文本文件进行查找与替换, 替换后保存到新的文本文件中。
思路: 输入待查找字符串 s, 需查找子字符串 key 和替换字符串 new, 通过调用自定义函数replace 实现替换。 完善划线处代码。
s = input("请输入待查找的字符串: ")
key = input("请输入需查找的子字符串: ")
new = input("请输入要替换的字符串: ")
def findstr(key, s, begin):
for i in range(begin,len(s) - len(key) + 1):
if s[i: ____①____ ]== key:
return i
return -1
def replace(key, new, s):
begin = 0
while begin < ____②____ :
pos = findstr(key,s, begin)
if pos ==-1:
break
else:
s = s[0:pos]+ new + s[pos + len(key): ____③____ ]
begin = pos + len(key)
return s
rst = ____④____ #调用函数替换字符
print(rst)
参考答案
s = input("请输入待查找的字符串: ")
key = input("请输入需查找的子字符串: ")
new = input("请输入要替换的字符串: ")
def findstr(key, s, begin):
for i in range(begin,len(s) - len(key) + 1):
if s[i:i+len(key)]== key:
return i
return -1
def replace(key, new, s):
begin = 0
while begin < len(s)-len(key)+ 1:
pos = findstr(key,s, begin)
if pos ==-1:
break
else:
s = s[0:pos]+ new + s[pos + len(key):len(s)]
begin = pos + len(key)
return s
rst = replace(key,new,s) #调用函数替换字符
print(rst)答案解析
评分标准:
(1) i+len(key) 或等价答案; (3 分)
(2) len(s)-len(key)+ 1 或等价答案; (3 分)
(3) len(s) 或等价答案; (3 分)
(4) replace(key,new,s) 或等价答案。(3 分)