测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)

上一题 下一题