自定义dup函数无法返回无重复字符字符串,返回结果为原字符串
问题原因分析
你的代码问题出在return语句的缩进位置:
return(str1)被放在了for循环的内部,和if语句同级。这意味着循环只执行第一次迭代就直接返回结果了。比如原字符串是"abcabc",第一次循环处理字符'a',添加到str1后立刻返回"a",根本没机会处理后面的字符。你说得到原字符串可能是描述有误,实际应该是只返回了第一个字符,或者你实际运行的代码缩进和贴出来的不一致。
修正后的代码
把return语句移到for循环外面,确保遍历完所有字符后再返回结果,同时建议不要用str作为变量名(它是Python内置的字符串类型,容易引发冲突):
def dup(s): str1 = "" for ch in s: if ch not in str1: print(ch) str1 = str1 + ch return str1
内容的提问来源于stack exchange,提问作者Shelly
相关产品推荐
相关产品推荐

