s = 'a123456123789'
x = input('原字符')
k = input('替换')
def change(s):
for i in range(len(s)):
for j in range(i,len(s)):
if x == s[i:j]:
s1 = s[:i]
c = s[j:]
s = s1+k+c
return s
new = change(s)
count={}
for x in s:
count.setdefault(x, 0)
count[x] = count[x] + 1
v = count[x]
for i in range(v):
change(new)
print(new)
下面是有个大佬的代码,具体的链接忘记了
# -*- coding:utf-8 -*-
# def customize_replace(s, old_str, new_str, max=None):
# # 存储新的字符串
# result = ''
#
# # 存储old_str的index
# replace_str_index_in_s = []
#
# for i in range(len(s)):
# if s[i:i + len(old_str)] == old_str:
# replace_str_index_in_s.append(i)
# print(i)
#
#
# j = 0
# if max == None:
# while j < len(s):
# # 遍历s[j],j的值不是按序+1,因此用while循环
# if j in replace_str_index_in_s:
# result += new_str
# j += len(old_str)
# else:
# result += s[j]
# j += 1
# else:
# count = 0
# # 统计替换次数
# while j < len(s):
# if count < max and j in replace_str_index_in_s:
# print('if执行', j, result)
# result += new_str
# j += len(old_str)
# count += 1
# else:
# print('else执行', j, result)
# result += s[j]
# j += 1
# return result
#
#
# res = customize_replace('ababababddd', 'ab', '!?.012 ')
# print(res)