【发布时间】:2016-12-24 17:28:46
【问题描述】:
很抱歉,如果之前有人问过这个问题,但我已经为此苦苦挣扎了好几个星期了。
我试图弄清楚如何用另一个特定的子字符串替换任意字符串中的特定子字符串。
IE:
如果我让用户输入任意字符串,我想用“UOP”之类的东西替换“MAA”的任何实例。
我的代码:
cstring = input("Enter a character string: ")
for i in cstring:
if ((i != 'M') and (i != 'U') and (i != 'I')):
break
else:
if (cstring[-1] == 'I'):
cstring = cstring + 'U'
if (cstring[:1] == 'M'):
cstring = cstring + cstring[1:]
if ('III' in cstring):
cstring = cstring[:i] + "U" + cstring[i:]
if ('UU' in cstring):
cstring = cstring[:i] + '' + cstring[i:]
break
print(cstring)
谢谢!
【问题讨论】:
-
至于为什么你的代码不起作用,你在两个条件中都有
break语句,所以for循环在第一次迭代后被强制停止。 -
正如 Tadhg 所说,不要使用
break,只需使用continue。不过,这看起来不像是我的任务,看起来更像是研究/科学代码,可能用于某种基于用户输入的配置或其他东西。 -
这不是作业题,而是教程题。我被告知 cstring.replace() 方法不适用于此,我应该使用切片来保持适当的索引一致性。
-
但是感谢中断问题哈哈。我完全没有注意到这一点。
标签: python string indexing slice