我已经编写了一个替换'X'的所有实例的函数,但是我如何才能使它只在从开始到停止的时间间隔内替换它?
def replaceSegment(string, replace, start, stop):
newstring = ''
for x in string:
if x == 'X':
newstring = newstring + replace
else:
newstring = newstring + x
return newstring
编写一个函数,replaceSegment,它接受一个字符串,str和另一个 字符串,替换和两个整数,启动和停止。该函数应该返回一个 新字符串,其中原始字符串中出现所有子字符串“X”, str,在从索引开始到不包括索引停止的范围内,是 替换为替换字符串。
执行相同或类似任务的内置函数或模块, 不能用于此任务。但是,允许使用len()函数。
示例:
ReplaceSegment >>> ("HXej! BalXoo X", "hope", 3, 7) 'HXej! Hope balXoo! ')
答案 0 :(得分:0)
将start
和stop
视为将字符串分为三部分:
start
,start
开始,在stop
之前结束,stop
开始,直到字符串结束。所以,只有第二部分会改变。
如果您可以成功地将这三个部分隔离开来,则可以将newstring
作为第一部分启动,仅将循环应用于第二部分,然后在最后添加最后一部分。它看起来像这样:
def replaceSegment(string, replace, start, stop):
# before = the part of string before start
# segment = the part of string from start to before stop
# after = the part of the string from stop to the end of string
newstring = before
for x in segment:
if x == 'X':
newstring = newstring + replace
else:
newstring = newstring + x
newstring += after
return newstring