返回for循环函数

时间:2020-09-19 06:12:50

标签: python

这是怎么了? 无论我输入什么,为什么这总是True?

def duplicates(s):
    for c in s:
        if s.count(c) > 1:
            
            return False
            
        else:
            return True

print(duplicates("god"))
print(duplicates("goo"))
print(duplicates("good"))

1 个答案:

答案 0 :(得分:2)

循环主体永远不会执行一次以上,因为无论如何,您都将在第一次迭代中执行TrueFalse的返回。

要修复此问题,请仅从循环内返回False。在循环退出之前,不要返回True

def duplicates(s):
    for c in s:
        if s.count(c) > 1:
            return False

    return True

函数名有点误导,因为如果没有重复,则返回True,如果有重复,则返回False