【发布时间】:2017-11-10 05:50:59
【问题描述】:
如何调整下面的函数,如果分配给st1的变量根本没有出现在字符串中(1没有出现在字符串中,并且字符串是*********),该函数只是返回字符串@987654322 @ 但如果字符串确实包含 1,它会将每个 1 替换为 2,如下所示。感谢您的帮助。
def replacest1(string,st1,st2):
for i in string:
if i == st1:
N_W = string.replace(st1 , st2)
return N_W
print(replacest1("***1***1***","1","2"))
【问题讨论】:
-
我不确定你是否需要一个函数。给定三个字符串
foo、tok和rep,只需使用foo.replace(tok, rep)将返回foo,所有tok实例都替换为rep。如果foo包含tok的no 个实例,它将简单地返回原始字符串foo。此外,我认为 for 循环是不必要的(并且可能会给您带来最大的麻烦)。 -
对于分配,需要用 s2 替换 st1 的每个实例。如果字符串不包含st1,我们只返回字符串。
-
顺便说一句,
string不是变量名的好选择:它是标准模块的名称。 -
@PM2Ring:是的,我正要这么说。不要选择这样的标识符非常重要。
标签: python