搜索功能没有真正搜索

时间:2012-04-23 10:44:26

标签: python for-loop python-2.7

我有以下代码,假设在字符串中搜索字母'e',如果在字符串中找到'e'则返回False并返回True是'e'没找到:

def has_no_e(word):
    for letter in word:
        if letter == 'e':
            return False
        return True

根据我的理解,for循环将逐个访问word中的字符,并根据我设置的条件检查它们,即if letter == 'e'

每次我运行程序时,似乎for循环只是出于某种原因检查第一个字母!

因此,使用has_no_e('dde','e')调用该函数将返回True。但如果我将其切换为has_no_e('edd','e'),它将返回False

我在x86 Windows 7旗舰机上运行Python 2.7.3 ...谢谢

3 个答案:

答案 0 :(得分:7)

其他人指出了你的错误,但整个功能过于复杂。你可以这样做:

def has_no_e(word):
    return 'e' not in word

答案 1 :(得分:3)

return True

位于for循环体内,因此在检查第一个字母是否为'e'之后会立即执行(除非第一个字母为e,否则它将返回False )。

答案 2 :(得分:3)

您的return缩进错误。 unindent it(与for处于同一级别),并且它将起作用